【FreeMarker模板引擎】5.freemarker结合Struts2使用

您所在的位置:网站首页 freemarker文件后缀 【FreeMarker模板引擎】5.freemarker结合Struts2使用

【FreeMarker模板引擎】5.freemarker结合Struts2使用

2023-03-20 02:05| 来源: 网络整理| 查看: 265

上一篇讲解了Freemarker与Servlet的结合,这里我们讲解一下Freemarker与Struts2的结合。

同样首先创建一个Web Project工程:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_xml

将Struts2的相关核心jar包和Freemarker的jar包放置在lib下,并添加至编译环境。然后将struts2的标签说明文件struts-tags.tld(解压struts2-core-X.X.X.jar文件,在META-INF文件夹下)放置在WEB-INF下,让Freemarker也可以使用相关的标签文件,然后在WEB-INF文件夹下创建template文件夹用于放置模板文件:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_xml_02

然后在WEB-INF下创建或编辑web.xml,设置“.flt”的请求路径映射至freemarker的中央处理Servlet:

Struts Blank

struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter

struts2 /*

freemarker freemarker.ext.servlet.FreemarkerServlet TemplatePath /template 1

freemarker *.ftl

JspSupportServlet org.apache.struts2.views.JspSupportServlet 1

index.jsp

然后在src下创建struts.xml作为struts的配置文件:

里面放置了struts的一些基本参数。由于还没写Action请求响应类,所以下面的action标签暂时为空,后面用来配置Action类的请求和响应信息。

然后创建一个“cn.com.freemarker.action.test”的包,用于放置Action请求处理类。

最后,工程全结构预览:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_freemarker结合struts_03

然后创建测试用的Action请求响应类,放置在“cn.com.freemarker.action.test”包下:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_xml_04

其中编写代码:

package cn.com.freemarker.action.test;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {

private String SystemName = "东方红管理系统";

@Override public String execute() throws Exception { System.out.println("HelloWorldAction.execute()"); return SUCCESS; }

public String getSystemName() { return SystemName; }

public void setSystemName(String systemName) { SystemName = systemName; }}

然后在struts.xml中配置该Action的请求和响应信息:

template/test_success.ftl

注意,在标签中的type我们填写的是“freemarker”,回顾一下Struts的Resultaction中的type类型,一共有以下几种:

dispatcher(跳转) redirect(重定向) chain(转发至其它action) redirectAction(转发至其它空间下的action) freemarker(加载freemarker模板视图文件) httpheader stream velocity xslt plaintext tiles

前四种比较常用,而与freemarker结合的时候就需要将type类型指定为“freemarker”,此时struts会将Action中的数据以数据模型的形式绑定在ftl模板页面中。

最后在WEB-INF下的template文件夹下创建“test_success.ftl”文件,内容如下:

test ${SystemName}

上面先是引入了Struts标签库,然后下面使用表达式获取后台数据模型中的“SystemName”参数内容,然后使用“@s.标签名”来调用Struts的标签库中的标签,这里展示了一个form表单的标签代码。

然后将Web工程放置Tomcat中运行:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_xml_05

在页面中访问“test”请求,可以看到相关的响应信息:

【FreeMarker模板引擎】5.freemarker结合Struts2使用_freemarker结合struts_06

通过浏览器的查看源码功能,看到ftl编译后的html源代码为:

test 东方红管理系统 用户名:

可以看到freemarker不仅将相关的数据模型中的数据解析至页面,还将相关的struts标签解析为html标签。

以上就是Struts结合Freemarker的相关操作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3