SPRING MVC3.2案例讲解--SPRING MVC3的各种URL映射+JSP视图跳转(3)

本章节主要讲解使用springmvc进行controller到view的转向,涉及代码包含JSP视图,

 

 

 

和上一章节最大的配置点不同是:

 

无任何视图指向的Controller   @ResponseBody是关键代码,表示直接返回内容,不转向JSP视图

@Controller
public class MappingController {

	@RequestMapping("/mapping/path")
	public @ResponseBody String byPath() {
		return "Mapped by path!";
	}
}

 

指向具体视图的Controller,无@ResponseBody,表示会指向某个JSP视图

@Controller
@RequestMapping("/views/*")
public class ViewsController {

	@RequestMapping(value="html", method=RequestMethod.GET)
	public String prepare(Model model) {
		model.addAttribute("foo", "bar");
		model.addAttribute("fruit", "apple");
		return "views/html";
	}

 

基于视图转向的四种用法:

1.自己制定转向的视图

	//  http://127.0.0.1:8010/views/html --->对应 views/html.jsp
	@RequestMapping(value="html", method=RequestMethod.GET)
	public String prepare(Model model) {
		model.addAttribute("foo", "bar");
		model.addAttribute("fruit", "apple");
		return "views/html";
	}
	

 

 

2.spring指向默认的视图,通过org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator实现默认视图的转向,见日志信息:

DEBUG DispatcherServlet Unable to locate RequestToViewNameTranslator with name 'viewNameTranslator': using default [org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator@55a58f]

//  http://127.0.0.1:8010/views/viewName --->对应 views/viewName.jsp
	@RequestMapping(value="/viewName", method=RequestMethod.GET)
	public void usingRequestToViewNameTranslator(Model model) {
		model.addAttribute("foo", "bar");
		model.addAttribute("fruit", "apple");
	}
	

 

3.URI的 @PathVariable 的获取,注意参数名称必须一致!如:

 

//  http://127.0.0.1:8010/views/pathVariables/bar/apple --->对应 views/html.jsp
	@RequestMapping(value="pathVariables/{foo}/{fruit}", method=RequestMethod.GET)
	public String pathVars(@PathVariable String foo, @PathVariable String fruit) {
		// No need to add @PathVariables "foo" and "fruit" to the model
		// They will be merged in the model before rendering
		return "views/html";
	}
 

 

4. 利用URL的@PathVariable给JAVABEAN赋值 

 

//http://127.0.0.1:8010/views/dataBinding/bar/apple --->对应 views/dataBinding.jsp
	@RequestMapping(value="dataBinding/{foo}/{fruit}", method=RequestMethod.GET)
	public String dataBinding(@Valid JavaBean javaBean, Model model) {
		// JavaBean "foo" and "fruit" properties populated from URI variables 
		return "views/dataBinding";
	}
 
public class JavaBean {
	
	@NotNull
	private String foo;

	@NotNull
	private String fruit;
//注意此处有GET SET 方法,篇幅有限,不在文章中赘诉
}
 群:J2EE系统架构  203431569 ,进群前请标注开发的软件所属行业及工作经验!!

猜你喜欢

转载自json20080301.iteye.com/blog/1870599
今日推荐