`

Freemarker与Struts2的配置方法

阅读更多
Freemarker是模板引擎,也可以说是一种表现层的框架,它有自己的模板指令,开发者如果不熟悉这些语法,很难进行表现层的开发。Struts2框架技术对Freemarker做了很好的支持,开发人员只要熟悉Struts2的标签即可进行开发Freemarker模板文件,如果您还不熟悉具体的Struts2及标签应用请参考其他文献资料,本文主要阐述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的配置 方法有所了解及应用,不足之处请大家批评指正。

分享到:
评论

相关推荐

    freemarker与struts2详细配置

    **FreeMarker与Struts2的整合配置详解** FreeMarker是一个基于Java的模板引擎,它用于生成动态HTML、XML或其他格式的文本输出。Struts2是一个流行的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。将...

    Struts2 与Freemarker 的配置方法

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

    struts2+hibernate+freemarker项目实例

    Struts2、Hibernate和FreeMarker是Java开发领域中常见的三个开源框架,它们分别在MVC(Model-View-Controller)架构的不同层面发挥着关键作用。这个"struts2+hibernate+freemarker"项目实例是将这三个框架集成到一起...

    freemarker与struts配置实例和dwr实例

    2. **配置Struts2**:在`struts.xml`配置文件中,定义Action类和对应的Result,指定使用FreeMarker模板进行渲染。例如: ```xml &lt;result type="freemarker"&gt;/path/to/your/template.ftl ``` 3. **配置...

    Struts2与Freemarker的配置方法

    通过以上步骤,可以成功地将Struts2与Freemarker整合到一起,构建出高效的Java Web应用。在实际开发中,还需要关注安全性、异常处理、国际化等方面,确保应用的稳定性和用户体验。同时,不断学习和理解这两个框架的...

    freemarker+struts完整代码实例

    初学者可以通过此实例了解如何将FreeMarker与Struts结合,实现动态页面的生成和控制层的处理。 首先,让我们详细了解FreeMarker。FreeMarker的工作原理是,它接收来自服务器的数据,然后根据预先定义的模板文件生成...

    FreeMarker与struts2整合生成静态页面

    1. **配置Struts2**:在Struts2的配置文件(struts.xml)中,我们需要配置FreeMarker作为默认的结果类型。这通常涉及到添加`&lt;result-type&gt;`元素,并设置`class`属性为`org.apache.struts2.views.freemarker.Freemarker...

    freemarker_struts2分页

    在Java Web开发中,FreeMarker和Struts2是两个非常重要的技术组件。FreeMarker是一个模板引擎,用于生成动态HTML、XML等文档,而Struts2则是一个基于MVC设计模式的Web应用框架。本篇文章将深入探讨如何在Struts2框架...

    freemarker_struts2_demo

    将FreeMarker与Struts2结合,可以创建一个高效的MVC架构。在Struts2中,Action类处理请求,执行业务逻辑后,会返回一个结果类型,这个结果类型可以是一个FreeMarker模板。FreeMarker模板根据Action传递的数据模型...

    freemarker+struts2+在eclipse中创建maven项目

    创建Freemarker模板文件(.ftl),并将它们配置在Struts2的配置文件中,以便Struts2知道如何将Action的结果映射到特定的模板。 3. **Struts2**: Struts2是一个基于Model-View-Controller(MVC)设计模式的Java ...

    Struts2整合Freemarker生成静态页面

    将Struts2与Freemarker结合使用,可以实现视图层的高效渲染,提供更灵活的页面设计。 在Struts2中整合Freemarker,主要涉及以下几个关键知识点: 1. **Freemarker模板语言**:Freemarker使用模板语言,由`&lt;#...&gt;`...

    freemarker与Struts2.0的dome

    - 在Struts2的Action类中,定义方法处理用户请求,返回一个字符串结果,这个结果将与Freemarker模板关联。 - 在`struts.xml`中,为Action类的每个方法配置结果,如`&lt;result name="success"&gt;myfreemarker.ftl...

    struts2和freemarker整合

    **Struts2与FreeMarker的整合** Struts2框架允许开发者选择不同的视图技术,FreeMarker就是其中一种。整合过程包括以下几个步骤: 1. **添加依赖**:在项目中添加FreeMarker和Struts2 FreeMarker插件的依赖。 2. **...

    freemarker项目(从入门到与struts2结合)

    1. **Struts2配置**:在Struts2的配置文件`struts.xml`中,指定FreeMarker作为视图解析器。这通常涉及到添加`&lt;result-type&gt;`配置,指定为`freemarker`类型。 2. **Action与模型绑定**:Struts2的Action类可以直接...

    freemarker+struts2+ibatis入门学习摘要

    3. **配置 Struts**:在 `web.xml` 文件中配置 Struts2 过滤器,指定 FilterDispatcher 类,然后映射所有的 URL 请求到 Struts2 处理。 4. **创建配置文件**:在 `src` 目录下创建 `struts.xml` 配置文件,定义 ...

    使用freemarker扩展struts标签

    1. `StrutsModels.class` 和 `StrutsModels.java`: 这可能是包含通用Struts2 FreeMarker模型的类,它们为FreeMarker模板提供访问Action上下文和其他Struts2服务的方法。 2. `AmHtml.class`, `AmHtmlModel.class`: ...

    freemarker+struts2.0 实例20090309.rar

    **FreeMarker与Struts2.0整合实例详解** FreeMarker是一个强大的模板引擎,它与Java Servlet技术配合使用,可以方便地生成动态Web内容。而Struts2.0是基于MVC设计模式的开源Web框架,它继承了Struts1的优点,并引入...

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

    在实际开发中,这个项目可以帮助我们理解如何将Struts2的注解配置与FreeMarker模板结合起来,实现用户管理系统的功能。通过阅读源代码,我们可以深入学习Struts2的注解用法,以及如何利用FreeMarker模板设计美观、...

    Struts2+FreeMarker部署

    **Struts2与FreeMarker的集成** 在Struts2中使用FreeMarker作为视图技术,需要进行以下步骤: 1. **配置依赖**:在项目的`pom.xml`或`build.gradle`文件中,添加FreeMarker的依赖库。 2. **配置Struts2**:在`...

Global site tag (gtag.js) - Google Analytics