freemarker插件及与struts2的整合

首先在http://sourceforge.net/project/showfiles.php?group_id=163305下载插件,解压,将 hudson.freemarker_ide_0.9.14文件夹放入eclipse下的plugins文件夹。

发现hudson.freemarker_ide_0.9.14下的freemarker-2.3.6.jar包是比较早的版本,用新的 freemarker-2.3.15.jar替换之,把MANIFEST.MF里的Bundle-ClassPath也改为freemarker- 2.3.15.jar

退出Eclipse再重启,在window --> Preferences 左边的树形栏里出现FreeMarker Editor一项新的内容。在General --> Editors --> File Associations下,为*.html和*.htm文件添加(add)FreeMarker Editor 作他们关联的编辑器(associated editors) , *.ftl文件的默认编辑器就是FreeMarker Editor。这样在编辑混合有HTML和FreeMarker标记的文件时,可以选择右击文件 --> Open with HTML Editor 或者 Open with FreeMarker Editor

Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不熟悉这些语法,很难进行表现层的开发。Struts2 框架技术对Freemarker做了很好的支持,开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件,如果您还不熟悉具体的Struts2及标签应用请参考其他文献资料

freemarker和struts2整合方法
配置工程开发环境
1. 新建Web工程freemarkerWeb
2. 到http://struts.apache.org, 下载struts-2.0.11.2-all.zip解压缩并导入开发所需相关jar包到lib目录下。Jar包:struts2-core- 2.0.11.2.jar,xwork-2.0.5.jar,ognl-2.6.11.jar,freemarker- 2.3.8.jar,commons-logging-1.0.4.jar
3. 解压缩struts2-core-2.0.11.2.jar复制META-INF/struts-tags.tld复制到工程WEB-INF目录下
4. 配置web.xml文件
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apacher.sturts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-parttern>/*</url-parttern>
</filter-mapping>
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
注意:要想在Freemarker中使用Struts2标签必须配置以上加粗部分代码到 web.xml文件中。
5. 创建struts.xml文件
<struts>
<package name="struts" extends="struts-default">
<action name="userLogin" class="com.test.action.LoginAction" method="userLogin">
<result name="success" type="freemarker">
/WEB-INF/templates/user.ftl
</result>
</action>
</package>
</struts>
注意:
A:斜体字部分的代码是根据不同的应用而配置的,斜体部分的代码为freemarkerWeb应用的代码。
B:<reslutl>元素的type 属性必须设置为freemarker,这是因为Freemarker模板文件必须由Freemarker模板引擎来解析,而Struts2内部实现了 Freemarker模板引擎,但我们必须声明返回结果类型为freemarker才可以
至此Struts2与Freemarker的配置已经完成,可以进行开发了.
三、 完成Struts2与Freemarker的配置开发工程
创建
LoginAction.java
……
private Log log=LogFactory.getLog(LoginAction.class);
private String username;
private String password;
/**
* 登录处理
* @return
* @throws Exception
*/
public String userLogin() throws Exception{
log.info("执行了登录方法userLogin()");
return SUCCESS;
}
省略相应(getter,setter方法)


创建登录页面index.jsp
    <s:form action="userLogin">
登录名:<s:textfield name="username"/><br>
密码:<s:textfield name="password"/>
<s:submit value="登录" />
</s:form>

创建结果页面:user.ftl
<#--
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld "]>
-->
<html>
<body>
欢迎<@s.property value="username"/>登录!
</body>
</html>

注意:
[color=red]A.以上注释中的内容可以去掉,因为Struts2默认引入该标签库[/color]
B. Struts2标签在JSP 页面中的写法与在Freemarker模板文件中的写法不同。Freemarker模板文件是以<@s.tag>开始,以</@s.tag>结束
JSP文件中是以<s:tag>开始 以</s:tag>结束。应用时<tag>替换为Struts2的标签名称。

好了,我们现在将freemarkerWeb工程部署到Tomcat6.0服务器上,访问 http://loacalhost:8080/freemarkerWeb/index.jsp后输入用户名,密码,登录即可看到欢迎XX登录!

最后,需要大家需要注意的是,Freemarker模板文件的处理,通过Web容器是无法直接处理的,因此不要让用户直接访问模板文件。在开发过程中,我们可以将Freemarker文件直接放到Web工程的 WEB-INF目录或其子目录下,并在相应的struts-*.xml文件中配置type="freemarker" 来输出模板。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值