Struts2跟freemarker的配置实例讲解(FTL文件解析)
2016-11-16 21:03
561 查看
Freemarker 简介
FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写
FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。
FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件
FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境
FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库
Freemarker 开发配置
1、准备相应的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
2、解压缩struts2-core-2.0.11.2.jar复制META-INF/struts-tags.tld复制到工程WEB-INF目录下,FREEMARKER中默认是不支持struts2标签的,所以需将标签库导入模板中。
3、修改WEB.XML文件
添加STRUTS2过滤器
注意:对于网络上所说的要想在Freemarker中使用Struts2标签必须配置一个新SERVLET
在本人的实践中发现这步并非必须的,此处有待深入研究
4、接下来这步应该是最重要的,配置struts.xml文件
/WEB-INF/template/secondPage.ftl
……
private Log log=LogFactory.getLog(IndexAction.class);
private String username;
private String password;
/**
* 登录处理
* @return
* @throws Exception
*/
public String getVediosByCategory() throws Exception{
log.info(“执行了登录方法getVediosByCategory()”);
return SUCCESS;
}
省略相应(getter,setter方法)
…
创建结果页面:user.ftl
注意:
1、Struts2标签在JSP 页面中的写法与在Freemarker模板文件中的写法不同。
Freemarker模板文件是以<@s.tag>开始,以/@s.tag结束
2、Freemarker模板文件的处理,通过Web容器是无法直接处理的,因此不要让用户直接访问模板 文件。在开发过程中,我们可以将Freemarker文件直接放到Web工程的 WEB-INF目录或其子目录下(用户无法访问WEB-INF目录下文件),并在相应的struts-*.xml文件中配置type="freemarker" 来输出模板
FREEMARKER接触不深,如有不足之处请大虾们多多指正,freemarker demo教程源代码下载:http://www.zuidaima.com/share/kfreemarker-p1-s1.htm
转http://blog.163.com/liu_yang1234/blog/static/24474310201102035516438/
FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写
FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序
虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。
FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件
FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境
FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库
Freemarker 开发配置
原本对freemarker了解不多,只知道是一种模板语言,我的个人网站设计时都没有考虑到使用freemarker,而是直接JSP展示。在网站上线推广过程中了解到,各个搜索引擎对动态的链接不够友好,就是说对于网站中XXX.action?name=www.tiantianfilm.com 这种格式的链接,搜索引擎不予收录,网络蜘蛛更亲奈.html的静态链接,为了便于更方便的网站推广,所以将网站集成URLREWRITER+FREEMARKER 技术改写了全站链接。大家可以去网站看下效果,www.tiantianfilm.com 细心的人还是可以看见.action的痕迹的。 现在网站中有两套链接,.action的动态链接,.html的静态链接。链接的改写纯粹是为了便于网站的推广,URLREWRITER过滤器的使用,FREEMARKER模板语言开发,这两块本人将在后续文章中做详细讲解,本文将结合网站详细介绍STRUTS2+FREEMARKER的开发配置。
1、准备相应的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
2、解压缩struts2-core-2.0.11.2.jar复制META-INF/struts-tags.tld复制到工程WEB-INF目录下,FREEMARKER中默认是不支持struts2标签的,所以需将标签库导入模板中。
3、修改WEB.XML文件
添加STRUTS2过滤器
<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>
注意:对于网络上所说的要想在Freemarker中使用Struts2标签必须配置一个新SERVLET
<servlet> <servlet-name>JspSupportServlet</servlet-name> <servlet-class> org.apache.struts2.views.JspSupportServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet>
在本人的实践中发现这步并非必须的,此处有待深入研究
4、接下来这步应该是最重要的,配置struts.xml文件
<action name="getVediosByCategory" class="com.wang.vedio.action.IndexAction" method="getVediosByCategory"> <result name="success">/secondPage.jsp</result> </action> ` 以上ACTIN配置为正常使用STRUTS2的配置,但在结合FREEMARKER中则需做如下改变
/WEB-INF/template/secondPage.ftl
注意:<reslutl>元素的type 属性必须设置为freemarker,这是因为Freemarker模板文件必须由Freemarker模板引擎来解析,而Struts2内部实现了 Freemarker模板引擎,但我们必须声明返回结果类型为freemarker才可以 经过以上四步,STRUTS2+FREEMARKER配置完成,可以进行开发应用,下面展示一个简单的实例 IndexAction.java
……
private Log log=LogFactory.getLog(IndexAction.class);
private String username;
private String password;
/**
* 登录处理
* @return
* @throws Exception
*/
public String getVediosByCategory() throws Exception{
log.info(“执行了登录方法getVediosByCategory()”);
return SUCCESS;
}
省略相应(getter,setter方法)
…
创建结果页面:user.ftl
<#-- <#assign s=JspTaglibs["/WEB-INF/struts-tags.tld "]> --> <html> <body> 欢迎<@s.property value="username"/>登录! </body> </html>
注意:
1、Struts2标签在JSP 页面中的写法与在Freemarker模板文件中的写法不同。
Freemarker模板文件是以<@s.tag>开始,以/@s.tag结束
2、Freemarker模板文件的处理,通过Web容器是无法直接处理的,因此不要让用户直接访问模板 文件。在开发过程中,我们可以将Freemarker文件直接放到Web工程的 WEB-INF目录或其子目录下(用户无法访问WEB-INF目录下文件),并在相应的struts-*.xml文件中配置type="freemarker" 来输出模板
FREEMARKER接触不深,如有不足之处请大虾们多多指正,freemarker demo教程源代码下载:http://www.zuidaima.com/share/kfreemarker-p1-s1.htm
转http://blog.163.com/liu_yang1234/blog/static/24474310201102035516438/
相关文章推荐
- Struts2跟freemarker的配置实例讲解
- 机房收费系统总结之登录功能实例解析抽象工厂+配置文件
- 全方位解析:Struts2配置文件
- Struts2配置文件讲解
- Redis配置文件解析+单机多实例(主从)配置
- java中struts2实现文件上传下载功能实例解析
- struts2第一个实例和配置文件介绍
- Struts2配置文件讲解
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第七步---英雄要升级&属性--解析csv配置文件
- Struts2配置文件讲解
- Struts2配置文件讲解
- Struts2配置文件讲解
- struts2文件上传的采用的三种方式解析和上传下载讲解
- Struts2 FreeMarker FTL 模板文件中调用静态 java 方法
- Struts2配置文件讲解
- JavaWeb中struts2实现文件上传下载功能实例解析
- Struts2配置文件讲解
- Struts2学习记录(Struts2各项配置文件解析)
- Python配置文件解析模块ConfigParser使用实例
- Python中使用ConfigParser解析ini配置文件实例