`
successfulroof
  • 浏览: 73110 次
  • 性别: 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
分享到:
评论

相关推荐

    spring mvc mybatis velocity 示范

    spring mvc mybatis velocity 示范

    spring mvc与velocity整合

    spring mvc与velocity整合

    maven搭建spring mvc velocity+mybatis

    一个使用maven搭建spring mvc的例子(velocity+mybatis)

    spring框架的MVC

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是...

    spring-webmvc5.3.6 jar包.rar

    这个jar文件包含Spring MVC框架相关的所有类。  包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。  当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的...

    spring mvc 框架示例

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是...

    spring mvc sitemesh velocity整合

    Spring MVC框架,整合了velocity,这个没有用到Hibernate,下一版本会把集成Hibernate

    Spring mvc+mybatis+maven+velocity+mysql整合实例

    本篇文章将通过一个简单显示用户信息的实例整合Spring mvc+mybatis+Maven+velocity+mysql. 一、.Maven工程目录 二、Spring mvc + mybatis +maven实现 1.Mysql数据库表数据

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建源码

    这是我写的一个Spring + Spring MVC + MyBatis + Velocity + MySQL 框架搭建完整项目,里面包含了所需的全部JAR包已经相关源码,感兴趣的同学可以下载喽。。。 配合我的博客更好哦!

    spring mvc 3.2 参考文档

    从Spring3.0开始支持REST,主要通过 @PathVariable 注解和其他特性来支持。 在Spring Web MVC 中,您可以使用任何对象作为命令对象(command orject)或表单对象 ;您不需要实现框架特定接口或基类。Spring的数据绑定...

    Maven + Spring mvc + Mybatis + Velocity 整合实例

    Maven + Spring mvc + Mybatis + Velocity 整合实例,之前上传的整合 Demo,修改了一些问题,所以重新上传了一个

    Spring MVC+Maven+Velocity配置实例

    Spring MVC+Maven+Velocity配置实例

    spring mvc 0604

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是...

    mybatis spring mvc volectiy项目视图访问控制spring mvc

    最近学习了一下mybatis结合网上的一些列子搭建的一个网站的框架,前端显示用的velocity引擎,数据访问使用mybatis+oracle,视图访问控制spring mvc,框架主要包括一些基本的增删改操作以及拦截器,项目介绍地址:...

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 demo

    Maven + Spring mvc + Mybatis + Velocity +国际化配置 整合实例,之前上传的整合 Demo,修改了一些问题,所以重新上传了一个

    spring3 mvc+mybatis+velocity+maven

    spring3 mvc mybatis velocity登录功能的简单实现,主要是想用下mybatis和velocity

    基于spring MVC的论坛

    请确保您的机器上装有jdk1.5及以上版本并且可以联网(解析dtd文件) 解压后,先初始化mysql,运行mysql。运行resin目录下的httpd.exe文件即可(请确保resin解压在D盘根目录下面,由于配置的时候是写死的引用D:\resin...

    maven+spring mvc+hibernate+dubbo+velocity+mysql的demo源码

    maven+spring mvc+hibernate+dubbo+velocity+mysql的demo源码,运行前请修改resources/config.properties下的数据配置

    基于spring MVC的论坛002

    请确保您的机器上装有jdk1.5及以上版本并且可以联网(解析dtd文件) 解压后,先初始化mysql,运行mysql。运行resin目录下的httpd.exe文件即可(请确保resin解压在D盘根目录下面,由于配置的时候是写死的引用D:\...

Global site tag (gtag.js) - Google Analytics