在 Spring mvc3.0 rest风格 Spring mvc 入门(一)已经讲过了怎样打造一个简单的rest风格的请求方式
下面将会接着讲怎样在spring mvc3中支持velocity模板
在(一)中,我配置的viewResolver是 org.springframework.web.servlet.view.JstlView这个是普通的Jstl形式的视图
我们要将
<bean id="viewResolver" class="org.springframework.web.servlet.view.JstlView">
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>
改为
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
<property name="contentType"><value>text/html;charset=UTF-8</value></property>
</bean><!-- prefix先暂时置为空,因为velocity还有另外一个配置。把.jsp修改位.vm模板格式,然后必须加入contentType这一项
来设置编码,要不然在引用模板的时候页面很容易就出现乱码的情况-->
另外velocity还需要另外一个 配置就是告诉spring velocity存放模板的地方
<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/velo/"/>
<property name= "velocityProperties">
<props>
<prop key="input.encoding">utf-8</prop>
<prop key="output.encoding">utf-8</prop>
</props>
</property>
</bean>
在上面的xml里面最好也配置上编码格式,注意resourceLoaderPath这个属性,我配置的是 /WEB-INF/velo/ 所以他默认就去这个目录下面去找*.vm格式的文件了,之所以在viewResolver那里的prefix的原因就是因为在这里已经配置过了,如果你
在viewResovler里面再次配置 WEB-INF/velo/那么,在请求的时候将会抛出在/WEB-INF/veloc/目录下无法找到welcome.vm文件
在经过上面配置之后
我写个测试类
@Controller
public class Welcome {
@RequestMapping(value ="/welcome/user")
public ModelAndView welcome(HttpServletRequest request,HttpServletResponse response,
ModelMap modelMap) {
return new ModelAndView("welcome",modelMap);
//普通转向
}
@RequestMapping(value ="/welcome/ordinary")
public ModelAndView ordinary(HttpServletRequest request,HttpServletResponse response,
ModelMap modelMap) {
//velocity测试
List<String> strlist = new ArrayList<String>();
for(int i=0;i<10;i++) {
strlist.add("list字符"+i);
}
modelMap.put("strlist", strlist);
Map<String,String> map = new HashMap<String,String>();
for(int i=0;i<10;i++) {
map.put("zifu"+i, "map字符"+i);
}
map.put(null, "哦");
modelMap.put("map", map);
List<User> objlist = new Stack<User>();
for(int i=0;i<10;i++) {
objlist.add(new User("name"+i,"nick"+i));
}
modelMap.put("uselist", objlist);
return new ModelAndView("ordinary",modelMap);
}
public class User {
private String username;
private String nickname;
public User(String username, String nickname) {
this.username = username;
this.nickname = nickname;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}
}
上面是一个controller
下面是一个velocity模板,简单的循环的例子:
<html>
<head>
<title>Oridnary</title>
</head>
<body>
#include("style/headtitle.vm")
<div>
这是一个普通的页面
<img alt="微笑" src="../im/xiao.gif">
</div>
<div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
strlist:
<div>
<ul>
#foreach($str in $strlist)
<li>${str}</li>
#end
</ul>
</div>
</div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
map:
<div>
<ul>
#foreach($ma in $map.entrySet())
<li>$!{ma.key}-${ma.value}</li>
#end
</ul>
</div>
</div>
<div style="border:1px dashed black;width:300px;float:left;margin-left:10px;padding-left:10px;">
object:
<div>
<ul>
#foreach($user in $uselist)
<li>${user.username}-${user.nickname}</li>
#end
</ul>
</div>
</div>
</div>
</body>
</html>
下面是 headtitle.vm 仅仅只是个例子,比较简单,各位莫见笑
<div>
这是一个头
</div>
保存,然后启动服务器
输入:http://localhost:8080/Proj/welcome/ordinary 这样就会看到一个完整的html模板了
如下图见附件
- 大小: 69.9 KB
分享到:
相关推荐
让我们深入探讨Spring MVC 3.0中文版和4.0英文版中的关键知识点。 1. **MVC架构**: - **模型(Model)**:负责存储应用程序的数据,通常与数据库交互。 - **视图(View)**:负责渲染数据并展示给用户,如JSP、...
Spring MVC通过@RequestMapping的produces和consumes属性,以及@Consumes和@Produces注解,支持构建符合REST原则的服务,能够处理JSON、XML等多种内容类型。 11. **模板引擎集成** Spring MVC可以轻松地与各种...
12. **RESTful风格**: Spring MVC 支持创建RESTful API,通过@RequestMapping配合HTTP动词(GET、POST、PUT、DELETE等),可以轻松构建符合REST原则的接口。 13. **异常处理**: 通过@ControllerAdvice和@...
7. **Spring MVC**:Spring的Web MVC模块在3.0版本中也有所提升,支持更多视图技术(如Freemarker、Velocity),并改进了模型绑定和异常处理。 8. **测试支持**:Spring 3.0提供了丰富的测试工具,如`@...
6. **视图技术**:Spring MVC 支持多种视图技术,如 JSP、Thymeleaf、FreeMarker、Velocity 等。它们负责将处理结果呈现给用户。 7. **数据绑定**:Spring MVC 提供了自动的数据绑定机制,可以将请求参数自动绑定到...
在设计REST风格的MVC框架时,集成如Spring这样的IoC容器是非常必要的。IoC容器可以自动管理Controller实例的创建和销毁,同时处理其依赖注入,使开发者无需关心这些细节,专注于业务逻辑。 #### 模板引擎的选择与...
Spring Web MVC支持REST风格的控制器开发,并且能够支持请求数据的映射和绑定。数据类型转换是Web开发中常见的需求,Spring Web MVC内置了多种类型转换器,并允许开发者自定义转换器以满足特定需求。数据格式化关注...
5. **MVC框架改进**:Spring 3.0的Web MVC框架得到了显著增强,增加了模型绑定、数据验证、类型转换等功能。`@RequestMapping`、`@RequestParam`、`@PathVariable`等注解使得控制器方法的映射更加直观,同时也支持了...
在3.2.5版本中,Spring MVC提供了对RESTful风格的URL路由、数据绑定、异常处理等特性。 2. **DispatcherServlet**: DispatcherServlet是Spring MVC的核心组件,作为前端控制器,负责接收HTTP请求,并根据配置的...
**Spring MVC + Velocity + REST Services (XML, JSON) 实例详解** 在当今的Web开发领域,Spring MVC、Velocity和RESTful服务是常见的技术栈。这个实例项目是一个基于Maven构建的无数据库操作的轻量级Web应用,它...
#### 二、Spring Web MVC 的核心组件 ##### 1. DispatcherServlet(前端控制器) - **作用**:作为整个Spring Web MVC的入口,负责接收HTTP请求,并将请求分发到对应的处理器。 - **配置**:通常在`web.xml`文件中...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本压缩包中,包含的是 Spring MVC 4.0 版本的 jar 文件,这个...
在"spring-mvc-velocity-bootstrap-master"这个项目中,我们可以看到源码结构和配置文件,它们展示了如何配置Spring MVC以支持REST服务和Velocity模板,以及如何引入和使用Bootstrap库。通过学习这个项目的代码,...
- **视图技术**:Spring MVC支持多种视图技术,如JSP、Thymeleaf、Velocity等,允许开发者选择最适合项目的视图技术。 - **国际化与本地化**:Spring MVC提供了对国际化和本地化支持,可以根据用户的语言和地区提供...
9. **RESTful支持**:通过注解如`@GetMapping`、`@PostMapping`等,Spring MVC可以轻松创建符合REST原则的API。 10. **模板引擎集成**:Spring MVC与各种模板引擎良好集成,如Velocity、FreeMarker和Thymeleaf,...
Spring MVC在3.0版本中进行了大量改进,包括模板引擎的支持(如FreeMarker和Velocity),更强大的视图解析,以及更灵活的HTTP请求参数处理。 9. **数据访问**: Spring 3.0对数据访问层进行了优化,包括JDBC、...
7. **RESTful支持**:Spring MVC 4.0提供了更好的对RESTful风格的HTTP请求的支持,包括@RequestMapping的@RequestMapping(method = RequestMethod.GET/POST/PUT/DELETE)等,使得创建REST服务更加便捷。 8. **异步...
- **REST 支持**:Spring MVC 提供了对 RESTful 风格 URL 和 JSON/XML 数据的支持。 #### 二、Spring MVC 的优势 1. **开发效率高**:Spring MVC 基于方法级别的拦截,这意味着每个方法都可以处理一个具体的 HTTP ...
Spring 3.0 是一个非常重要的Java应用框架版本,它为开发者提供了丰富的功能和改进,以简化企业级Java开发。这个中文手册详细介绍了Spring 3.0的核心特性、配置、编程模型以及最佳实践,旨在帮助中国开发者更好地...
另外,Spring 2.5还加强了对RESTful服务的支持,提供了一套完整的REST工具包,帮助开发者构建符合REST原则的服务。并且,它对WS-*(Web Services)标准的支持也得到了提升,包括SOAP、WS-Security等。 总的来说,...