感觉现在的JAVA框架越来越多,纷繁复杂。想彻底研究一种框架,了解下其中的一些通用的东西,于是选择了struts2。
看了很多struts2的文档,发现很多都是在讲struts2与JSP使用很多标签库,我不喜欢用那么多的标签,于是研究了下如何使用velocity与 struts2整合。
主要有四个步骤:
1,添加pom依赖 (这里我采用 maven管理依赖,相当方便)
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>1.3</version>
<scope>compile</scope>
</dependency>
2,修改web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
</servlet>
<!-- Map *.vm files to Velocity -->
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.vm<welcome-file>
</welcome-file-list>
</web-app>
3,增加/WEB-INF/velocity.properties
这里根据需要加velocity参数,我暂时啥参数也不加,整个空文件,用默认的总可以吧,需要的时候再加好了。
4,增加/EB-INF/toolbox.xml
<?xml version="1.0"?>
<toolbox>
<tool>
<key>link</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.StrutsLinkTool</class>
</tool>
<tool>
<key>msg</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.MessageTool</class>
</tool>
<tool>
<key>errors</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.ErrorsTool</class>
</tool>
<tool>
<key>form</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.FormTool</class>
</tool>
<tool>
<key>tiles</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.TilesTool</class>
</tool>
<tool>
<key>validator</key>
<scope>request</scope>
<class>org.apache.velocity.tools.struts.ValidatorTool</class>
</tool>
</toolbox>
好,到此为止整合完毕。
最后添上一个helloworld.vm
velocity的helloWorld
#foreach( $header in $request.HeaderNames )
<b>$header:</b> $request.getHeader($header)<br>
#end
试一下吧,会打出浏览器的一些请求的head出来。原来不是helloworld,呵呵。但是还是小有成就感,至少出来点东西了吗。
====================邪恶的分割线==================
接下来我们来真正的helloWorld。
1,建立index.vm
<html>
<body>
<form action="HelloWorld">
<input type="text" name="userName"/>
<input type="submit" value="提交" />
</form>
</body>
</html>
2,修改struts.xml
加上如下配置
<package name="default" extends="struts-default">
<action name="HelloWorld" class="com.yajun.helloworld.HelloWorld">
<result name="SUCCESS">/success.vm</result>
</action>
</package>
3,如上面的配置所示,还需要加入
com.yajun.helloworld.HelloWorld 这个类:
package com.yajun.helloworld;
public class HelloWorld {
private String message;
private String userName;
public HelloWorld(){
}
public String execute() {
setMessage("Hello " + getUserName());
return "SUCCESS";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
和success.vm
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>$message</h1>
</body>
</html>
完成了,运行吧。哈哈。
感觉比标签清爽许多,而且velocity可以直接从 struts2 的 valueStack中 取得像要的值,还是挺不错的。
但是,有突然发现,中文显示有问题呀。于是想到了velocity.properties那个文件还需要配置个东西:
input.encoding = GBK
output.encoding = GBK
这下一个HelloWorld应该OK了。
分享到:
相关推荐
Struts2+velocity 整合时所用的jar包 资源目录如下 commons-collections-3.1 commons-digester-2.0 commons-fileupload-1.2.2 commons-lang-2.5 freemarker-2.3.16 ognl-3.0.1 oro-2.0.8 struts2-core-2.2.3.1 ...
一个简单的struts2 整合 velocity 模板的例子
Struts2 整合 velocity最简单工程 最少的jar包 SSH Velocity
velocity学习笔记与struts2整合 velocity学习笔记与struts2整合 velocity学习笔记与struts2整合
NULL 博文链接:https://qiaolevip.iteye.com/blog/1276857
文档详细描述了Velocity整合struts2步骤,以及velocity的语法规范
这是我自己整合struts2结合velocity的完整实例,含源码完整,下载几个使用,希望对大家有帮助
commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.13.jar struts2-core-2.1.6.jar xwork-2.1.2.jar
struts2与velocity整合的项目例子 写了各种使用方法
NULL 博文链接:https://yjhexy.iteye.com/blog/978123
velocity+struts2实例,适合开发和整合使用,你可以发现很多时候都是可以复用或者优化的方法,只要你用心去修改、
struts2+spring+velocity简单的扩展实例,下载下来就能运行。后续将整合各项技术。敬请期待。
struts2结合velocity做为表现层的整合框架,详细演示了velocity的标签用法,不需要数据库支持,Action层模拟数据。
ssm三大框架最简单demo 功能:查找并显示所有用户信息 附所有jar包及sql脚本 由于代码简单,所以没有添加注释
struts2.2+velocity+tiles+spring3+mybatis3.05集成框架实例 ,最新的框架组合.。
Struts2属性文件详解 struts.configuration 该属性指定加载Struts 2配置文件的配置文件管理器.该属性的默认值是org.apache.Struts2.config.DefaultConfiguration, 这是Struts 2默认的配置文件管理器.如果需要实现...
此项目介绍了以SSM(struts2+Spring3+Mybatis3)项架整合,页面采用VM(velocity)+DWZ(简单实用国产jQuery UI框架)集合
velocity语法,Velocity+Java开发指南中文版,struts2 与velocity1.6及velocity tools1.4的整合,Velocity+Spring+Ibatis框架搭建说明文档,Velocity详解(初学者建议看)
Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架发展而来 Struts2框架=Struts2+XWork Strust2 核心功能 允许POJO(Plain Old Java Objects,简单javabean对象,没有继承,...
velocity相关的eclipse插件、jar包和文档。 eclipse插件:com.googlecode.veloeclipse.ui_2.0.8...jar包:velocity-1.7、velocity-tools-2.0(含有源码) 文档:velocity语法、使用以及和struts2、spring、ibatis的整合