`

struts2下freemarker访问静态方法和静态变量

    博客分类:
  • HTML
阅读更多

${stack.findValue("@package.ClassName@method")}

${stack.findValue("@package.ClassName@property")}

因为 stack 是webwork结合 freemarker 后在 ftl 中可以用的,其他的还有 ${base}等等

 

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()")}

就会出现想要的结果

 

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

 

 

 

 

 

 

 

补充(静态方法的调用):

方法1:
##定义配置文件 freemarkerstatic.properties 
_Validator=com.longyou.util.Validator 
_Functions=com.longyou.util.Functions 
_EscapeUtils=com.longyou.util.EscapeUtils 
/调用代码 
${_Functions.toUpperCase("Hello")}<br> 
${_EscapeUtils.escape("狼的原野")}

方法2:
${stack.findValue("@package.ClassName@method")}
来自:http://www.zhuoda.org/lunzi/83461.html

 

 

 

 

自定义方法
${timer("yyyy-MM-dd H:mm:ss", x)}
${timer("yyyy-MM-dd ", x)}

在模板中除了可以通过对象来调用方法外(${object.methed(args)})也可以直接调用java实现的方法,java类必须实现接口TemplateMethodModel的方法exec(List args). 下面以把毫秒的时间转换成按格式输出的时间为例子
public class LongToDate implements TemplateMethodModel {
    
public TemplateModel exec(List args) throws TemplateModelException {
SimpleDateFormat mydate = new SimpleDateFormat((String) args.get(0)));
        return mydate.format(new Date(Long.parseLong((String)args.get(1)));
    }
}  
将LongToDate对象放入到数据模型中
root.put("timer", new IndexOfMethod());
ftl模板里使用
<#assign x = "123112455445">
${timer("yyyy-MM-dd H:mm:ss", x)}
${timer("yyyy-MM-dd ", x)}

输出
2001-10-12 5:21:12
2001-10-12

 

 

来自:http://203.208.37.132/search?q=cache:K-jfE3IUKvAJ:www.cnblogs.com/ynlxc/archive/2006/10/16/529974.html+freemarker+replace&cd=1&hl=zh-CN&ct=clnk&gl=cn&st_usg=ALhdy2-nnWwf9CnI8LdXVtXHOTn_-KR2Ig

 

 

分享到:
评论

相关推荐

    Struts2整合Freemarker生成静态页面

    6. **Struts2的OGNL表达式**:在Freemarker模板中,可以利用Struts2的OGNL(Object-Graph Navigation Language)表达式来访问复杂的对象结构和方法。例如,`${user.address.city}`可以访问User对象的嵌套属性address...

    struts2中使用freeMarker

    - 将Action中的属性暴露给FreeMarker模板,通常是通过getter方法,FreeMarker可以访问这些属性并展示在页面上。 4. **结果类型配置**: - 在Action配置中,定义一个结果类型为`dispatcher`的结果,指定对应的...

    struts1.2+freeMarker

    在Struts1.2框架中集成FreeMarker,可以有效地将业务逻辑与视图层分离,提高应用程序的可维护性和性能。 1. **Struts1.2框架简介** - Struts1.2是Apache软件基金会的Jakarta项目的一部分,它提供了一套完整的MVC...

    FreeMarker与struts2整合生成静态页面

    FreeMarker与Struts2的...通过这个案例,开发者可以学习到如何将FreeMarker与Struts2结合起来,实现动态生成静态页面,以及如何使用c3p0和dbUtils进行数据库操作。这对于理解Web应用的架构和提高开发效率具有重要意义。

    struts+freemarker 源码例

    在Struts与FreeMarker的整合中,通常需要在Struts的配置文件(struts-config.xml或struts2的struts.xml)中定义Action和对应的Result,指定使用FreeMarker来渲染结果。例如: ```xml &lt;result type="freemarker"&gt;/...

    struts2+freemarker+log4j

    Struts2、Freemarker和Log4j是Java Web开发中的三个重要组件,它们各自扮演着不同的角色。这里,我们来深入探讨这三个技术的核心概念及其整合应用。 **Struts2** 是一个开源的MVC(Model-View-Controller)框架,...

    Struts2+Spring2.5+hibernate3.2+freemarker

    开发者可以在模板中使用变量和控制结构,FreeMarker会结合后台提供的数据模型,生成最终的静态页面。 在"Struts2+Spring2.5+Hibernate3.2+Freemarker"的集成中,Spring作为整体的容器,负责管理所有组件的生命周期...

    SSH框架和FreeMarker动态网页生成静态技术

    SSH框架,全称为Struts2、Spring和Hibernate的集成框架,是Java开发Web应用时常用的一种解决方案。这个框架集合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,提供了高效且灵活...

    Struts2+Freemark

    Struts2和FreeMarker是两种在Java Web开发中广泛使用的开源框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求,管理业务逻辑,而FreeMarker则是一个模板引擎,负责生成动态HTML或其他...

    freemaker+struts2

    3. **导入 Struts2 标签库**:FreeMarker 默认不支持 Struts2 的标签,需要将 `struts-tags.tld` 文件复制到工程的 `WEB-INF` 目录下,以便在模板中使用。 4. **配置 Struts2 动作**:在 `struts.xml` 文件中定义 ...

    FreeMarker应用实例和PPT

    FreeMarker是一款强大的、开源的模板引擎,主要用于生成...通过以上内容的学习,开发者不仅可以理解FreeMarker的基础知识,还能掌握在Struts2项目中实际运用FreeMarker的方法,从而提高Web应用的开发效率和代码质量。

    freemarker基本语法整理

    在 Struts2 环境中,Freemarker 可以读取后台程序的静态变量和静态方法。例如: ```html ${stack.findValue("@package.ClassName@method")} ${stack.findValue("@package.ClassName@property")} ``` 以上就是 ...

    freemarker

    在这个场景中,开发者使用FreeMarker来静态化首页,以优化网站的访问速度和降低数据库查询的开销。 在上述的描述中,开发者面临的问题是首页内容繁多,如果使用传统的动态JSP页面,每次访问都会触发大量的数据库...

    freemarker+fckeditor+struts+hibernate

    开发者定义模板,其中包含静态文本和变量,FreeMarker负责将变量替换为实际值,生成最终的动态页面。在Struts框架中,FreeMarker通常用于视图层,提供灵活且高效的页面渲染。 **FCKeditor** FCKeditor是历史上广泛...

    Struts+Spring+Hibernate+Freemarker.rar_freemarker_spring_spring

    Struts、Spring、Hibernate 和 Freemarker 是 Java Web 开发中常用的四大框架,它们结合使用可以构建高效、可维护的Web应用程序。"Struts+Spring+Hibernate+Freemarker 新闻系统"是一个典型的MVC(Model-View-...

    freemarker示例工程

    总的来说,这个示例工程展示了如何在Struts2框架下使用Freemarker进行动态页面渲染。开发者可以通过分析和运行这个工程,学习如何配置Struts2以支持Freemarker,理解如何编写Freemarker模板,以及如何将数据模型绑定...

    struts2项目

    11. **最佳实践**:在实际项目中,应遵循一些最佳实践,例如避免在Action类中使用静态变量,使用贫血模型(Anemic Domain Model)来分离业务逻辑,以及充分利用拦截器来封装共性功能。 12. **安全性**:Struts2的...

    freemarker案例

    通过配置Struts2的Action类和结果类型,可以轻松地将Freemarker模板设置为视图渲染引擎。在Struts2的配置文件(struts.xml)中,我们可以定义一个Action的`result`元素,指定其`type`为`freemarker`,并提供对应的...

    freemarker的jar包和代码

    - **Web开发**:FreeMarker常与Spring MVC、Struts2等框架结合,用于生成视图层。 - **邮件模板**:生成个性化邮件内容。 - **报告生成**:制作PDF、Excel等静态文档。 6. **最佳实践** - 模板设计应尽可能简单...

    struts2 精品代码

    9. **插件和扩展**:Struts2有丰富的插件系统,如Freemarker、Tiles等,可以增强视图渲染能力。此外,Struts2还支持自定义拦截器和结果类型。 10. **最佳实践**:了解并遵循一些最佳实践,例如避免在Action中使用...

Global site tag (gtag.js) - Google Analytics