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,页面取值正常了。

原文地址:https://www.cnblogs.com/jdluojing/p/3212418.html