感觉现在的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整合,可以实现更高效、更灵活的视图渲染。 **1. Struts2框架介绍** Struts2是Apache软件基金会下的开源项目,它是基于MVC设计模式的Java Web框架。它的核心是Action类,负责处理用户的请求,并...
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,主要是让Struts2的Action能够将处理结果传递给Velocity模板进行渲染。这通常通过配置Struts2的Result类型来完成,例如设置一个`velocity`类型的Result,指定对应...
Struts2与Velocity的整合主要体现在Action的返回结果类型上。当一个Action执行完毕后,可以通过配置Action的result来指定使用哪个Velocity模板来生成响应。例如,你可以设置`<result type="velocity">/WEB-INF/...
Struts2 和 Velocity 的整合是Java Web开发中常见的技术组合,用于构建动态、高效的Web应用程序。Velocity 是一个基于模板语言的轻量级视图层框架,而Struts2 是一个强大的MVC(Model-View-Controller)框架。将这...
整合Struts2和Velocity,首先需要在Struts2的配置文件(struts.xml)中声明Velocity结果类型。然后,在Action类中设置需要传递到视图的数据,这些数据可以通过Struts2的数据绑定自动注入到模型对象中。最后,...
整合Struts2和Velocity主要是为了让Struts2的动作类(Action)能够与Velocity模板进行交互。在Struts2的配置文件中,我们需要指定一个Result类型为"velocity",这样当Action执行完毕后,会使用Velocity模板来渲染...
【Velocity语法以及整合struts2总结】 Velocity是一个开源的Java模板引擎,它是Apache软件基金会的Jakarta项目的一部分。Velocity将HTML代码与业务逻辑分离,使得开发者可以专注于内容和设计,而不用关心数据如何...
在Struts2与Velocity整合的例子中,可能会用到预处理或后处理的拦截器。 6. **Action与视图的通信**:Struts2使用ValueStack管理Action上下文中的对象,这些对象可以直接在Velocity模板中通过OGNL表达式访问。例如...
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整合** 将Velocity与Struts2整合,可以将Velocity作为视图层,实现更清晰的职责分离。开发者在Action中处理业务逻辑,然后将数据模型传递给Velocity模板,由Velocity负责渲染页面。这种方式减少...
NULL 博文链接:https://yjhexy.iteye.com/blog/978123
总的来说,Velocity与Struts2的整合使得开发者可以利用Velocity的强大模板能力来构建更加灵活和可维护的视图层,同时利用Struts2的控制层来处理业务逻辑和动作。这种方式提高了应用程序的可扩展性和模块化。在实际...
在"mongo集成spring struts2 json velocity"这个项目中,我们将看到如何将这些技术整合到一起,创建一个功能丰富的Web应用程序。 首先,MongoDB的集成意味着项目会利用其NoSQL特性和文档存储的优势。Spring Data ...
Struts2、Spring和Velocity是Java Web开发中的三个重要框架,它们各自负责应用程序的不同层面,协同工作可以构建出高效、可维护的Web应用。在这个"struts2+spring+velocity扩展实例V1版本"中,我们可以看到这三个...
《基于Maven的Spring、Struts2、iBatis与Velocity整合实践》 在Web开发领域,Spring、Struts2、iBatis和Velocity是四个非常重要的组件,它们各自承担着不同的职责,共同构建出高效、灵活的Web应用程序。本实例以...
学习和理解Struts2与Velocity的整合,可以帮助开发者更好地掌握Java Web应用的开发流程,提升项目的可维护性和开发效率。通过熟练运用这两者,开发者可以构建出清晰分离的业务逻辑、控制逻辑和视图,从而实现更高效...
2. Struts2整合:Struts2通过Action类处理用户的请求,并利用OGNL(Object-Graph Navigation Language)表达式语言进行数据绑定。在整合MyBatis时,通常会创建一个Action类,该类将调用Service层的方法,Service层则...
Struts2和Velocity的整合是Java Web开发中常见的技术组合,用于构建动态、交互式的Web应用。Struts2是一个强大的MVC(Model-View-Controller)框架,它提供了丰富的功能来处理请求、业务逻辑和视图展示。而Velocity...
** Velocity + Struts2 框架整合应用详解** 在Web开发领域,Velocity和Struts2都是备受开发者青睐的开源框架。Velocity是一个基于Java的模板引擎,它将控制逻辑与表现逻辑分离,使得开发者可以专注于内容的呈现,而...