Struts2与Freemarker的配置方法

本文介绍如何在Struts2框架中集成Freemarker模板引擎,包括开发环境搭建、配置步骤及示例代码。重点讲解了Struts2标签在Freemarker中的使用方法。

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" 来输出模板。
**项目名称:** 基于Vue.jsSpring Cloud架构的博客系统设计开发——微服务分布式应用实践 **项目概述:** 本项目为计算机科学技术专业本科毕业设计成果,旨在设计并实现一个采用前后端分离架构的现代化博客平台。系统前端基于Vue.js框架构建,提供响应式用户界面;后端采用Spring Cloud微服务架构,通过服务拆分、注册发现、配置中心及网关路由等技术,构建高可用、易扩展的分布式应用体系。项目重点探讨微服务模式下的系统设计、服务治理、数据一致性及部署运维等关键问题,体现了分布式系统在Web应用中的实践价值。 **技术架构:** 1. **前端技术栈:** Vue.js 2.x、Vue Router、Vuex、Element UI、Axios 2. **后端技术栈:** Spring Boot 2.x、Spring Cloud (Eureka/Nacos、Feign/OpenFeign、Ribbon、Hystrix、Zuul/Gateway、Config) 3. **数据存储:** MySQL 8.0(主数据存储)、Redis(缓存会话管理) 4. **服务通信:** RESTful API、消息队列(可选RabbitMQ/Kafka) 5. **部署运维:** Docker容器化、Jenkins持续集成、Nginx负载均衡 **核心功能模块:** - 用户管理:注册登录、权限控制、个人中心 - 文章管理:富文本编辑、分类标签、发布审核、评论互动 - 内容展示:首页推荐、分类检索、全文搜索、热门排行 - 系统管理:后台仪表盘、用户内容监控、日志审计 - 微服务治理:服务健康检测、动态配置更新、熔断降级策略 **设计特点:** 1. **架构解耦:** 前后端完全分离,通过API网关统一接入,支持独立开发部署。 2. **服务拆分:** 按业务域划分为用户服务、文章服务、评论服务、文件服务等独立微服务。 3. **高可用设计:** 采用服务注册发现机制,配合负载均衡熔断器,提升系统容错能力。 4. **可扩展性:** 模块化设计支持横向扩展,配置中心实现运行时动态调整。 **项目成果:** 完成了一个具备完整博客功能、具备微服务典型特征的分布式系统原型,通过容器化部署验证了多服务协同运行的可行性,为云原生应用开发提供了实践参考。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值