`

Struts2+FreeMarker应用配置

阅读更多
Struts2+FreeMarker应用配置

1、配置说明
普通的struts2配置文件一般是这么配置的:
<action name="ChannelTypeMng" method="query" class="channelTypeMngAction">
<result name="success">/pages/channel/channelTypeMng.jsp</result>
</action>
这里的view是一个jsp页面,如果要改成freemarker模板页面,则改成如下配置:
<action name="ChannelTypeMngFTL" method="query"
class="channelTypeMngAction"
<result name="success" type="freemarker">/pages/channel/channelTypeMng.ftl</result>
</action>

如果需要在ftl模版文件里使用struts2的标签,则ftl模版文件里添加对strut2标签的引用:<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"] />。
引用前把struts2-core-2.0.x.x.jar包里的META-INF/struts-tags.tld 复制到工程的WEB-INF目录下。默认是不支持JspTaglibs的引用的,这里还需要一个额外的配置,修改web.xml,添加如下内容:
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

2、一个简单的fm.ftl文件的例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld"]/>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</body>
<@s.form action="FilmMod" method="post"
enctype="multipart/form-data">
<@s.hidden name="resourceItemsSize" id="resourceItemsSize" />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="blue">
<td width="16%">片源名称:</td>
<td width="33%"><@s.textfield name="filmName"
cssClass="input1 input5" /></td>
<td width="17%">导演:</td>
<td width="34%"><@s.textfield name="director"
cssClass="input1 input5" /></td>
</tr>
<tr>
<td>主演:</td>
<td><@s.textfield name="storring" cssClass="input1 input5" /></td>
<td>制片国家:</td>
<td><@s.textfield name="productionCountries"
cssClass="input1 input5" /></td>
</tr>
<tr class="blue">
<td>片源大类型:</td>
<td><@s.select name="kindId" id="kindId" list="filmKindItems"
onchange="loadOptions();" listKey="kindId" listValue="name"
headerKey="0" headerValue="--请选择--" /></td>
<td>片源海报:</td>
<td><@s.file name="posterFile" onchange="preview(this,150,100)" />
<div id="preview"></div>
</td>
</tr>
    </table>
</@s.form>
</body>
</html>
注意:struts2在freemarker页面中标签写法和jsp页面的写法不同,freemarker里是<@s.form>,jsp里是<s:form>,一定不要写错了!
现在就可以在struts2中正常使用freemarker了!

3、在freemarker使用struts2标签遇到的一些问题及解决办法:
3.1、<@s.property value="pageTurning" escape="false"/> freemarker中不能用escape属性,改成 ${pageTurning}即可,用JSP EL表达式。
3.2、<@s.select>标签中属性写法与freemarker有冲突
<@s.select id="releaseState" name="releaseState" list="#{1:'已发布',0:'未发布',-1:'已撤消'}" headerKey="" headerValue="--发布状态--"></@s.select>
以上的写法会出现异常,因为在Freemarker中,对#{}的使用有自己的含义:输出一个数字值,可以按照格式进行输出。例如:
<#assign x=2.582> <#-- 定义x的值为2.582 -->
#{x; m1M2} <#-- 输出2.58 -->
    针对以上现象,可改成如下:
    <@s.select id="releaseState" name="releaseState" list=r"#{1:'已发布',0:'未发布',-1:'已撤消'}" headerKey="" headerValue="--发布状态--"></@s.select>即可。
    list=r"#{1:'已发布',0:'未发布',-1:'已撤消'}" 加上r。即把#{1:'已发布',0:'未发布',-1:'已撤消'}当成纯字符串处理。
分享到:
评论

相关推荐

    struts2+hibernate+freemarker项目实例

    这个"struts2+hibernate+freemarker"项目实例是将这三个框架集成到一起,构建了一个完整的Web应用程序。 **Struts2** 是一个强大的MVC框架,它基于Action和Result的设计模式,负责处理用户的请求,并将其转发到相应...

    Struts2+FreeMarker部署

    Struts2和FreeMarker是两种在Java Web开发中广泛应用的技术。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建企业级Web应用程序,而FreeMarker则是一个模板引擎,用于生成动态HTML或...

    struts2+freemarker 生成静态页面

    总之,“struts2+freemarker 生成静态页面”是一个旨在提升Web应用性能的技术实践,通过结合Struts2的MVC框架和FreeMarker的模板引擎,实现了动态内容到静态HTML的转化,为用户提供更快的加载速度和更好的浏览体验。...

    struts2+freemarker

    Struts2 和 Freemarker 是两个在Java Web开发中广泛应用的技术,它们共同构成了强大的MVC(模型-视图-控制器)框架。Struts2是Action框架,主要负责处理用户请求、业务逻辑控制以及与视图层的交互,而Freemarker则是...

    struts2+freemarker 国际化

    Struts2和Freemarker是两个非常流行的Java Web开发框架,它们经常被一起使用来构建动态、交互式的Web应用程序。国际化(Internationalization,通常缩写为i18n)是软件开发中的一个重要概念,它允许应用程序支持不同...

    struts2+freemarker学习案例

    Struts2和FreeMarker是Java Web开发中两个重要的框架,它们常常被一起使用来构建动态、数据驱动的Web应用程序。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于简化Java Servlets和JSP的...

    struts+freemarker 源码例

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

    Struts2+freemarker

    综上所述,Struts2和FreeMarker的结合为Java Web开发提供了一个强大且灵活的解决方案,特别是对于初学者,这是一个很好的起点,可以快速理解Web应用的基本架构和工作流程。不过,随着技术的发展,现在Spring Boot和...

    struts2+freemarker+log4j

    1. **Struts2的配置文件(struts.xml)**:定义了Action类、结果页面、拦截器链等,是整个应用程序的路由中心。 2. **Freemarker模板文件(.ftl)**:在WEB-INF目录下,用于渲染视图,将后台Java对象的数据展示给...

    struts2.0+freemarker实例.rar

    可能包括Action类、FreeMarker模板文件以及Struts2的配置文件。通过解压并运行这个实例,你可以了解到如何将Struts2的Action与FreeMarker模板结合起来,实现动态网页的生成。 总结起来,Struts2.0和FreeMarker的...

    Struts2 与Freemarker 的配置方法

    总结来说,Struts2与Freemarker的配置主要是围绕工程的环境搭建、Struts2的web.xml配置、struts.xml配置以及Freemarker模板的编写展开的。通过这种集成,开发者可以利用Struts2的强大控制逻辑和Freemarker的模板能力...

    Struts2+Spring2.5+hibernate3.2+freemarker

    Struts2、Spring、Hibernate 和 FreeMarker 是Java Web开发中常用的四大框架,它们结合使用能够构建高效、可维护的企业级应用程序。以下是对这些技术及其整合的详细解释: **Struts2** 是一个基于MVC(Model-View-...

    struts1.2+freeMarker

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

    struts2+spring+Ibatis框架包

    Struts2还支持多种视图技术,如JSP、FreeMarker、Velocity等,让开发者有更多选择。 Spring框架则是一个全面的企业级应用开发框架,它的核心特性包括依赖注入(DI)和面向切面编程(AOP)。依赖注入帮助解耦组件,...

    Struts2零配置+FreeMarker用户管理系统(UMS)

    这个名为"Struts2零配置+FreeMarker用户管理系统(UMS)"的项目,旨在通过注解的方式展示如何在不编写XML配置文件的情况下,利用Struts2和FreeMarker创建一个用户管理系统。 首先,我们来了解一下Struts2框架。Struts...

    struts2.0+spring2.0+hiberante3+dwr+freemarker整合所需jar包

    Struts2.0、Spring2.0、Hibernate3和DWR以及Freemarker是Java Web开发中的关键组件,它们各自负责不同的职责,并且通过合理的整合,可以构建出强大的企业级应用系统。 Struts2.0是Apache软件基金会下的一个开源MVC...

    Struts2与Freemarker的配置方法

    Struts2和Freemarker是Java Web开发中的两个重要组件,它们在构建MVC(Model-View-Controller)架构的应用程序中发挥着关键作用。Struts2作为一个强大的MVC框架,负责处理请求、控制应用程序流程,而Freemarker则是...

    struts1.2+freemarker实现登录成功页面静态化例子

    2. 在Struts的配置文件(struts-config.xml)中配置Freemarker插件,指定模板目录、配置文件等参数。 3. 创建Freemarker模板文件(.ftl),定义页面布局和动态内容展示方式。 接着,我们设计登录功能。在Action类中...

Global site tag (gtag.js) - Google Analytics