Freemarker作为Struts2的其中一种结果类型,可以像在jsp页面一样使用JSP标签库,但在使用之前需要做一些特殊的配置。
1、需要在web.xml文件中配置以下信息,让Struts2在freemarker中支持标签功能
Xml代码
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
2、在freemarker模板文件中引用和使用标签
Html代码
<# assign cjm=JspTaglibs["/WEB-INF/cjm.tld"] />
<@cjm.test uid="cjm" pwd="pwd"/>
<# assign cjm=JspTaglibs["/WEB-INF/cjm.tld"] />
<@cjm.test uid="cjm" pwd="pwd"/>
3、如果freemarker模板文件很多,通过#assign的方式引用标签库有很多缺点:开发效率低、可维护性差等。更好的办法是通过Struts2的拦截器机制同一处理。关键代码如下:
Java代码
TaglibFactory jspTaglibs = new TaglibFactory(ServletActionContext.getServletContext());
TemplateModel cjm = jspTaglibs.get("/WEB-INF/cjm.tld");
ActionContext.getContext().put("cjm", cjm);
分享到:
相关推荐
为了在FreeMarker模板中使用Struts2的标签,首先需要引入Struts2的TLD文件。这可以通过在`.ftl`文件开头添加以下代码完成: ```freemarker ["/WEB-INF/struts-tags.tld"] /> ``` 同时,由于默认情况下FreeMarker不...
2. **Struts2 JSP标签库**:`<s:form>`、`<s:textfield>`、`<s:submit>`等标签的使用,以及如何通过`<s:property>`标签显示数据。 3. **JSP和Freemarker的比较**:两者在代码组织、可维护性和开发效率上的差异。 4. ...
要开始在Struts2中使用FreeMarker模板,首先需要将`freemarker-2.3.8.jar`库文件导入到你的项目的`WEB-INF/lib`目录下。这个库包含了FreeMarker模板引擎的所有必要组件。然后创建一个新的web工程,例如`...
例如,指定默认值可以直接在表达式中使用`!`操作符;检查变量是否存在则可以使用`?`操作符;定义列表和映射字面量也非常直观。 综上所述,从JSP到Freemarker 2.3.23的迁移过程中,需要注意的主要是一些基本语法的...
4. **JSP Ext增强**:JSP Ext库提供了一些额外的JSP标签,可以增强JSP的功能,比如方便的数据绑定、更灵活的条件语句等。在整合项目中,JSP Ext可以帮助简化JSP页面的编写,提高可读性和维护性。 5. **后端控制**:...
Spring框架也有自己的标签库,如Spring Taglib,可以简化JSP页面中的Spring Bean引用。而在Freemarker中,可以通过扩展其API创建自定义指令,实现更复杂的逻辑或功能。 总结一下,Struts2、Spring和Freemarker的...
ShiroTags 是 Shiro 提供的一套用于模板引擎的标签库,如 Freemarker 和 JSP,它们使得在视图层集成权限控制变得更为便捷。 `com.jagregory.shiro.freemarker.ShiroTags` 是 Jagregory 开发的一个扩展,将 Apache ...
虽然Freemarker不使用JSP,但它提供了类似于JSP标签的功能,称为“指令”(Directives)。这些指令可以用来控制流程、包含其他模板、循环、条件判断等,为开发者提供了一种灵活的方式来构建复杂的页面结构。 4. **...
1. 在FreeMarker模板中使用Shiro标签库:在.ftl文件顶部引入Shiro标签库: ```html ${'@org.apache.shiro.web.tags.ShiroTagLibHandler@getTagLibUri()'}"> ${shiro}" as shiro/> ``` 2. 使用Shiro标签:在模板中...
- 将struts-tags.tld复制到工程的WEB-INF目录下,这将使Struts2的标签能在JSP或Freemarker模板中使用。 - 配置web.xml,添加Struts2的过滤器和过滤器映射,确保所有请求都经过Struts2处理。同时,为在Freemarker中...
- 支持集成JSP标签库,提高Web应用开发的灵活性。 - 专门为MVC模式设计,实现了视图层与业务逻辑层的分离。 5. **智能国际化与本地化**: - 支持多种字符集,内部使用Unicode。 - 数字格式本地化敏感。 - 日期...
- **支持JSP标记库**: 允许在模板中使用JSP标签。 - **国际化和本地化**: - **字符集智能处理**: 内部使用Unicode字符集,支持多种字符集。 - **本地化敏感**: 数字、日期和时间格式都支持本地化处理。 - **多...
2. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组用于JSP的标签库,旨在减少在页面中使用Java脚本。它包含多个核心标签集,如fmt(格式化标签)、fn(函数标签)、sql(SQL标签)、xml(XML处理...
Struts2还支持使用丰富的标签库,例如Struts2的FreeMarker和JSP标签库,简化视图层的开发。这些标签可以方便地与Action中的数据进行交互,减少代码量,提高开发效率。 总之,Struts2是一个强大且灵活的MVC框架,它...
Freemarker提供了丰富的标签库,用于控制逻辑和数据处理。其中一些常用标签包括: - `#foreach`:循环遍历集合或数组。 - `#if`:条件判断。 - `#set`:变量赋值。 - `#list`:处理列表。 - `#include`:包含其他...
- 在JSP页面中引入Struts标签库,通过`指令完成。 - 标签属性的设置,例如`value`、`name`、`action`等,根据具体标签的语义来配置。 - 标签之间的嵌套,可以组合实现复杂功能。 - 配合OGNL(Object-Graph ...
Struts2标签库支持多种表现技术,包括JSP、FreeMarker和Velocity。这意味着在Struts2项目中,开发者可以根据具体需求选择最适合的表现层技术,同时保持标签库的使用。 Struts2标签库的通用标签主要分为三类: - ...
**注意**:为了让Freemarker能识别并使用Struts2提供的标签,需要在`web.xml`中配置相应的过滤器。 - **Struts.xml配置**:定义不同业务场景的结果视图。 ```xml <result name="success" type="freemarker">/...