struts2 freemarker当中引进java 常量java静态方法
2010-10-18 10:35
796 查看
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"}
表示允许使用静态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"}
相关文章推荐
- Struts2 FreeMarker FTL 模板文件中调用静态 java 方法
- struts2 访问静态常量,静态方法
- Freemarker 调用Java静态方法
- freemarker调用java静态方法以及枚举
- android ,java中的内存画分:栈,堆,静态区,常量去,方法区。。。简单梳理
- Java静态域、静态常量和静态方法
- java 15:静态变量,方法,常量
- FreeMarker调用JAVA静态方法
- JAVA 十五 构造方法,静态常量
- Struts2 OGNL表达式中调用java静态方法无效的解决办法
- 在java 中一种简单方式的声明静态Map常量的方法
- Freemarker 调用Java静态方法
- Spring MVC使用FreeMarker调用java静态方法
- Java内存图以及堆、栈、常量区、静态区、方法区的区别
- Java基础(五)---局部变量、全局变量、静态变量、final变量、静态常量、静态方法
- java中静态域,静态常量,静态方法
- Java中的常量、静态域与静态方法
- Freemarker 调用Java静态方法
- struts2 property标签访问 Java静态方法
- java 静态方法和实例方法的区别及总结