struts2无法调用类静态方法的解决办法
现在做网站中需要用到格式化输出Date对象,由于从数据库中取出来的是一个整体对象(例如Article对象),因此需要在显示页面来进行格式化处理。为了方便,写了一个DateFormateUtil类,里面提供了静态方法用于格式化Date对象(写的比较简单)。
public class DateFormatUtil { private static SimpleDateFormat sdf = new SimpleDateFormat(); /** * 按指定格式格式化输出Date对象 * * @param pattern * 格式化字符串 * @param date * 要格式化的Date * @return 格式化之后的字符串 */ public static String format(String pattern, Date date) { sdf.applyPattern(pattern); return sdf.format(date); } /** * 格式化Date的快捷方法 * * @param date * 要格式化的Date * @return */ public static String date2String(Date date) { return format("yyyy-MM-dd HH:mm:ss", date); } }
然后在页面上使用OGNL来调用这个类的静态方法。
<s:property value="@com.cms.util.DateFormatUtil@format('yy',postdate)" />
结果发现没有用.....
后来查看文档发现,如果要想在Struts2中使用OGNL调用静态方法,还得在struts.xml中开启一下。
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
重启tomcat,页面取值正常了。