struts2 freemarker当中引进java 常量java静态方法

1.首先在struts.sml中配置<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

表示允许使用静态java方法。非常重要。

2.在freemarker中引进java常量的方法:

假如:

Test.java

package test;

public class Test{

private String userSex=MAN;

public static final String MAN="男";

public static final String WOMAN="女";

public static String m()
{

return "test";
}

public String getUserSex()
{
return userSex;
}

public void setUserSex(String userSex)
{
this.userSex = userSex;
}

}

 

接下来我们在freemarker中调用该类中的 静态常量 和静态方法

a.调用常量:

${stack.findValue("@com.wish.maml.freemarkerexample.model.User1@MAN")}
</br>
${stack.findValue("@com.wish.maml.freemarkerexample.model.User1@m()")}

就会出现想要的结果

 

注意:目前只是调用静态的

补充:这里目前调用方法必须有返回值不能为void方法,如果是static void方法,那么运行页面的时候会走这个方法,但是没有值,所以会出错,这时候最好用个

${stack.findValue("@com.wish.maml.freemarkerexample2.freemarkerexample2.S@haha('aaa')")!"no"}

判断不存在的时候 显示 no

 

 

附带源代码如下

java

public class S
{
public static String str = "nih";

private String name = "";

public static String say()
{
return "good";
}

public static void haha(String ha)
{
System.out.println(ha);
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public static S getS()
{
S s = new S();
s.setName("中国");
return s;
}
}

 

ftl:

${stack.findValue("@com.wish.maml.freemarkerexample2.freemarkerexample2.S@str")}
${stack.findValue("@com.wish.maml.freemarkerexample2.freemarkerexample2.S@say()")}
${stack.findValue("@com.wish.maml.freemarkerexample2.freemarkerexample2.S@haha('aaa')")!"no"}


${stack.findValue("@com.wish.maml.freemarkerexample2.freemarkerexample2.S@getS().name")!"no"}

转载于:https://www.cnblogs.com/cai9911/archive/2010/10/18/1854045.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值