【FreeMarker模板引擎】5.freemarker结合Struts2使用 |
您所在的位置:网站首页 › freemarker文件后缀 › 【FreeMarker模板引擎】5.freemarker结合Struts2使用 |
上一篇讲解了Freemarker与Servlet的结合,这里我们讲解一下Freemarker与Struts2的结合。 同样首先创建一个Web Project工程: 将Struts2的相关核心jar包和Freemarker的jar包放置在lib下,并添加至编译环境。然后将struts2的标签说明文件struts-tags.tld(解压struts2-core-X.X.X.jar文件,在META-INF文件夹下)放置在WEB-INF下,让Freemarker也可以使用相关的标签文件,然后在WEB-INF文件夹下创建template文件夹用于放置模板文件: 然后在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请求处理类。 最后,工程全结构预览: 然后创建测试用的Action请求响应类,放置在“cn.com.freemarker.action.test”包下: 其中编写代码: 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中运行: 在页面中访问“test”请求,可以看到相关的响应信息: 通过浏览器的查看源码功能,看到ftl编译后的html源代码为: test 东方红管理系统 用户名:可以看到freemarker不仅将相关的数据模型中的数据解析至页面,还将相关的struts标签解析为html标签。 以上就是Struts结合Freemarker的相关操作。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |