`
successfulroof
  • 浏览: 74358 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring mvc3.0 rest风格 Spring mvc 配合velocity(二)

 
阅读更多

在 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
分享到:
评论

相关推荐

    Sring MVC3.0中文版和4.0英文版

    让我们深入探讨Spring MVC 3.0中文版和4.0英文版中的关键知识点。 1. **MVC架构**: - **模型(Model)**:负责存储应用程序的数据,通常与数据库交互。 - **视图(View)**:负责渲染数据并展示给用户,如JSP、...

    精通Spring MVC4

    Spring MVC通过@RequestMapping的produces和consumes属性,以及@Consumes和@Produces注解,支持构建符合REST原则的服务,能够处理JSON、XML等多种内容类型。 11. **模板引擎集成** Spring MVC可以轻松地与各种...

    spring mvc

    12. **RESTful风格**: Spring MVC 支持创建RESTful API,通过@RequestMapping配合HTTP动词(GET、POST、PUT、DELETE等),可以轻松构建符合REST原则的接口。 13. **异常处理**: 通过@ControllerAdvice和@...

    Spring 3.0 就这么简单(源码)

    7. **Spring MVC**:Spring的Web MVC模块在3.0版本中也有所提升,支持更多视图技术(如Freemarker、Velocity),并改进了模型绑定和异常处理。 8. **测试支持**:Spring 3.0提供了丰富的测试工具,如`@...

    spring mvc项目后端源码

    6. **视图技术**:Spring MVC 支持多种视图技术,如 JSP、Thymeleaf、FreeMarker、Velocity 等。它们负责将处理结果呈现给用户。 7. **数据绑定**:Spring MVC 提供了自动的数据绑定机制,可以将请求参数自动绑定到...

    设计 REST 风格的 MVC 框架

    在设计REST风格的MVC框架时,集成如Spring这样的IoC容器是非常必要的。IoC容器可以自动管理Controller实例的创建和销毁,同时处理其依赖注入,使开发者无需关心这些细节,专注于业务逻辑。 #### 模板引擎的选择与...

    Spring Web MVC入门教程

    Spring Web MVC支持REST风格的控制器开发,并且能够支持请求数据的映射和绑定。数据类型转换是Web开发中常见的需求,Spring Web MVC内置了多种类型转换器,并允许开发者自定义转换器以满足特定需求。数据格式化关注...

    Spring3.0学习笔记

    5. **MVC框架改进**:Spring 3.0的Web MVC框架得到了显著增强,增加了模型绑定、数据验证、类型转换等功能。`@RequestMapping`、`@RequestParam`、`@PathVariable`等注解使得控制器方法的映射更加直观,同时也支持了...

    spring-webmvc-3.2.5.RELEASE

    在3.2.5版本中,Spring MVC提供了对RESTful风格的URL路由、数据绑定、异常处理等特性。 2. **DispatcherServlet**: DispatcherServlet是Spring MVC的核心组件,作为前端控制器,负责接收HTTP请求,并根据配置的...

    springmvc+velocity+ Rest Services(xml,json)实例

    **Spring MVC + Velocity + REST Services (XML, JSON) 实例详解** 在当今的Web开发领域,Spring MVC、Velocity和RESTful服务是常见的技术栈。这个实例项目是一个基于Maven构建的无数据库操作的轻量级Web应用,它...

    深入浅出学Spring_Web_MVC

    #### 二、Spring Web MVC 的核心组件 ##### 1. DispatcherServlet(前端控制器) - **作用**:作为整个Spring Web MVC的入口,负责接收HTTP请求,并将请求分发到对应的处理器。 - **配置**:通常在`web.xml`文件中...

    springmvcjar4.0

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本压缩包中,包含的是 Spring MVC 4.0 版本的 jar 文件,这个...

    spring-mvc-velocity-bootstrap

    在"spring-mvc-velocity-bootstrap-master"这个项目中,我们可以看到源码结构和配置文件,它们展示了如何配置Spring MVC以支持REST服务和Velocity模板,以及如何引入和使用Bootstrap库。通过学习这个项目的代码,...

    spring-framework-3.0.5.RELEASE

    - **视图技术**:Spring MVC支持多种视图技术,如JSP、Thymeleaf、Velocity等,允许开发者选择最适合项目的视图技术。 - **国际化与本地化**:Spring MVC提供了对国际化和本地化支持,可以根据用户的语言和地区提供...

    springmvc独立开发包(包含spring版本为4.3.7)

    9. **RESTful支持**:通过注解如`@GetMapping`、`@PostMapping`等,Spring MVC可以轻松创建符合REST原则的API。 10. **模板引擎集成**:Spring MVC与各种模板引擎良好集成,如Velocity、FreeMarker和Thymeleaf,...

    spring-framework-3.0.0.RC2 lib

    Spring MVC在3.0版本中进行了大量改进,包括模板引擎的支持(如FreeMarker和Velocity),更强大的视图解析,以及更灵活的HTTP请求参数处理。 9. **数据访问**: Spring 3.0对数据访问层进行了优化,包括JDBC、...

    springmvc4.0的jar包

    7. **RESTful支持**:Spring MVC 4.0提供了更好的对RESTful风格的HTTP请求的支持,包括@RequestMapping的@RequestMapping(method = RequestMethod.GET/POST/PUT/DELETE)等,使得创建REST服务更加便捷。 8. **异步...

    springmvc的简单使用

    - **REST 支持**:Spring MVC 提供了对 RESTful 风格 URL 和 JSON/XML 数据的支持。 #### 二、Spring MVC 的优势 1. **开发效率高**:Spring MVC 基于方法级别的拦截,这意味着每个方法都可以处理一个具体的 HTTP ...

    spring3[1].0中文手册

    Spring 3.0 是一个非常重要的Java应用框架版本,它为开发者提供了丰富的功能和改进,以简化企业级Java开发。这个中文手册详细介绍了Spring 3.0的核心特性、配置、编程模型以及最佳实践,旨在帮助中国开发者更好地...

    精通Spring2.5pdf书籍proSpring2.5

    另外,Spring 2.5还加强了对RESTful服务的支持,提供了一套完整的REST工具包,帮助开发者构建符合REST原则的服务。并且,它对WS-*(Web Services)标准的支持也得到了提升,包括SOAP、WS-Security等。 总的来说,...

Global site tag (gtag.js) - Google Analytics