浏览 2637 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-17
最后修改:2011-02-17
Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不熟悉这些语法,很难进行表现层的开发。Struts2框架技术对Freemarker做了很好的支持,开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件,如果您还不熟悉具体的Struts2及标签应用请参考其他文献资料,本文主要阐述Struts2与Freemarker的配置 方法。 本文所述开发环境为: 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:<result>元素的type
属性必须设置为freemarker,这是因为Freemarker模板文件必须由Freemarker模板引擎来解析,而Struts2内部实现了
Freemarker模板引擎,但我们必须声明返回结果类型为freemarker才可以至此Struts2
与
Freemarker
的配置
已经完成,可以进行开发了.
三、
完成Struts2与Freemarker的配置
开发工程
创建LoginAction.java
public class LoginAction{ 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" 来输出模板。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |