Struts2与Freemarker的配置方法

来源:互联网 发布:矩阵乘法生活运用 编辑:程序博客网 时间:2024/05/17 21:49

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Struts2Freemarker的配置方法(附源码和插件)

 

 

 

 

 

 

 

 

 

 Struts2Freemarker的配置方法(附源码和插件)

2009812

hailang

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Struts2Freemarker的配置方法(附源码和插件)

关键词(Keyword)Struts2,Freemarker,配置,整合

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

本文所述开发环境为: 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.jarxwork-2.0.5.jarognl-2.6.11.jarfreemarker-2.3.8.jarcommons-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才可以

至此Struts2Freemarker的配置已经完成,可以进行开发了.

三、    完成Struts2Freemarker的配置开发工程

创建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,大功告成!Struts2Freemarker的配置开发工程就这样完成了。

 

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

通过上面的讲解,希望能大家能对Struts2Freemarker的配置方法有所了解及应用,不足之处请大家批评指正。

提供该文档的机构为 百洋软件研究实验室 ,更多的博客文章可以到 百洋软件研究实验室博客 查看。该文档附件欢迎各位转载,但是在没有获得文章作者许可之前,不得对文章内容或者版权信息进行更改,版权归百洋软件研究实验室所有,仅此声明。