海浪今天给大家详解
Struts2如何与Freemarker
配置,大家都知道
Freemarker
是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不熟悉这些语法,很难进行表现层的开发。
Struts2
框架技术对
Freemarker
做了很好的支持,开发人员只要熟悉
Struts2
的标签即可进行开发
Freemarker
模板文件。
本文所述开发环境为:
Eclipse
3.3.2+ MyEclipse 6.0 +JDK 1.5 +Tomcat 6.0
。
一、
安装开发
Freemarker
模板文件插件
Freemarker
自身提供了一个编辑模板文件的
Eclipse
插件
FreeMarkerIDE-1.0.0.GA.zip
,该插件具有错误提示,与高亮显示等功能,您可以到
freemarker.sourceforge.net
下载,也可通过
Eclipse IDE
自带的功能完成相关插件的安装,插件更新地址为:
www.freemarker.org/eclipse/update.
,插件具体安装配置过程请参考其他文献资料。
海浪看到很多网友对改插件的评价是褒贬不一样,海浪个人认为还可以,所以介绍给大家。
你也可以使用其它插件,只要能帮助你开发
Freemarker
模板文件即可。
二、
配置工程开发环境
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>
注意:
A.
以上注释中的内容可以去掉,因为
Struts2
默认引入该标签库
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
登录!
OK
,大功告成!
Struts2与Freemarker的配置
开发工程就这样完成了。
最后,需要大家需要注意的是,
Freemarker
模板文件的处理,通过
Web
容器是无法直接处理的,因此不要让用户直接访问模板文件。在开发过程中,我们可以将
Freemarker
文件直接放到
Web
工程的
WEB-INF
目录或其子目录下,并在相应的
struts-*.xml
文件中配置
type=
"
freemarker
"
来输出模板。
《详解Struts2如何与Freemarker
配置》海浪就介绍到这了,如大家在实践运用
Struts2
与
Freemarker
进行配置的时候,有更多更好的经验,欢迎访问海浪博客
http://www.po-soft.com/hi/hailang
多多交流。