${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:
_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
分享到:
相关推荐
6. **Struts2的OGNL表达式**:在Freemarker模板中,可以利用Struts2的OGNL(Object-Graph Navigation Language)表达式来访问复杂的对象结构和方法。例如,`${user.address.city}`可以访问User对象的嵌套属性address...
- 将Action中的属性暴露给FreeMarker模板,通常是通过getter方法,FreeMarker可以访问这些属性并展示在页面上。 4. **结果类型配置**: - 在Action配置中,定义一个结果类型为`dispatcher`的结果,指定对应的...
在Struts1.2框架中集成FreeMarker,可以有效地将业务逻辑与视图层分离,提高应用程序的可维护性和性能。 1. **Struts1.2框架简介** - Struts1.2是Apache软件基金会的Jakarta项目的一部分,它提供了一套完整的MVC...
FreeMarker与Struts2的...通过这个案例,开发者可以学习到如何将FreeMarker与Struts2结合起来,实现动态生成静态页面,以及如何使用c3p0和dbUtils进行数据库操作。这对于理解Web应用的架构和提高开发效率具有重要意义。
在Struts与FreeMarker的整合中,通常需要在Struts的配置文件(struts-config.xml或struts2的struts.xml)中定义Action和对应的Result,指定使用FreeMarker来渲染结果。例如: ```xml <result type="freemarker">/...
Struts2、Freemarker和Log4j是Java Web开发中的三个重要组件,它们各自扮演着不同的角色。这里,我们来深入探讨这三个技术的核心概念及其整合应用。 **Struts2** 是一个开源的MVC(Model-View-Controller)框架,...
开发者可以在模板中使用变量和控制结构,FreeMarker会结合后台提供的数据模型,生成最终的静态页面。 在"Struts2+Spring2.5+Hibernate3.2+Freemarker"的集成中,Spring作为整体的容器,负责管理所有组件的生命周期...
SSH框架,全称为Struts2、Spring和Hibernate的集成框架,是Java开发Web应用时常用的一种解决方案。这个框架集合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,提供了高效且灵活...
Struts2和FreeMarker是两种在Java Web开发中广泛使用的开源框架。Struts2作为MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求,管理业务逻辑,而FreeMarker则是一个模板引擎,负责生成动态HTML或其他...
3. **导入 Struts2 标签库**:FreeMarker 默认不支持 Struts2 的标签,需要将 `struts-tags.tld` 文件复制到工程的 `WEB-INF` 目录下,以便在模板中使用。 4. **配置 Struts2 动作**:在 `struts.xml` 文件中定义 ...
FreeMarker是一款强大的、开源的模板引擎,主要用于生成...通过以上内容的学习,开发者不仅可以理解FreeMarker的基础知识,还能掌握在Struts2项目中实际运用FreeMarker的方法,从而提高Web应用的开发效率和代码质量。
在 Struts2 环境中,Freemarker 可以读取后台程序的静态变量和静态方法。例如: ```html ${stack.findValue("@package.ClassName@method")} ${stack.findValue("@package.ClassName@property")} ``` 以上就是 ...
在这个场景中,开发者使用FreeMarker来静态化首页,以优化网站的访问速度和降低数据库查询的开销。 在上述的描述中,开发者面临的问题是首页内容繁多,如果使用传统的动态JSP页面,每次访问都会触发大量的数据库...
开发者定义模板,其中包含静态文本和变量,FreeMarker负责将变量替换为实际值,生成最终的动态页面。在Struts框架中,FreeMarker通常用于视图层,提供灵活且高效的页面渲染。 **FCKeditor** FCKeditor是历史上广泛...
Struts、Spring、Hibernate 和 Freemarker 是 Java Web 开发中常用的四大框架,它们结合使用可以构建高效、可维护的Web应用程序。"Struts+Spring+Hibernate+Freemarker 新闻系统"是一个典型的MVC(Model-View-...
总的来说,这个示例工程展示了如何在Struts2框架下使用Freemarker进行动态页面渲染。开发者可以通过分析和运行这个工程,学习如何配置Struts2以支持Freemarker,理解如何编写Freemarker模板,以及如何将数据模型绑定...
11. **最佳实践**:在实际项目中,应遵循一些最佳实践,例如避免在Action类中使用静态变量,使用贫血模型(Anemic Domain Model)来分离业务逻辑,以及充分利用拦截器来封装共性功能。 12. **安全性**:Struts2的...
通过配置Struts2的Action类和结果类型,可以轻松地将Freemarker模板设置为视图渲染引擎。在Struts2的配置文件(struts.xml)中,我们可以定义一个Action的`result`元素,指定其`type`为`freemarker`,并提供对应的...
- **Web开发**:FreeMarker常与Spring MVC、Struts2等框架结合,用于生成视图层。 - **邮件模板**:生成个性化邮件内容。 - **报告生成**:制作PDF、Excel等静态文档。 6. **最佳实践** - 模板设计应尽可能简单...
9. **插件和扩展**:Struts2有丰富的插件系统,如Freemarker、Tiles等,可以增强视图渲染能力。此外,Struts2还支持自定义拦截器和结果类型。 10. **最佳实践**:了解并遵循一些最佳实践,例如避免在Action中使用...