Spring Mvc 返回机制

Spring Mvc 有如下的几种返回方式:

ModelAndView,

Model,

ModelMap,

Map,

View,

String,

void

例子在类开始之前加上了如下注解:

@Controller

@RequestMapping("/adController")

一:ModelAndView

@RequestMapping("/show")
	public ModelAndView show(){
		ModelAndView mav = new ModelAndView();
		mav.setViewName("/admin/show");
		mav.addObject("aaa", "11111");
		return mav;
	}

 请求路径:项目路径/adController/show.do

 返回视图:项目路径/admin/show.jsp

通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定页面,使用addObject()设置需要返回的值。

在页面上可以通过El表达式${aaa}获取!

 

二:MAP

@RequestMapping("/show2")
	public Map<String,String> getMap(){
		System.out.println("show2");
		Map<String,String> map = new HashMap<String, String>();
		map.put("key1", "111");
		map.put("key2", "222");
		return map;
	}

 请求路径:项目路径/adController/show2.do

 返回视图:项目路径/adController/show2.jsp

URL = prefix前缀+视图名称+suffix后缀组成。

在前台页面也可以根据${key1}来获取相应的值。

 

三:String

@RequestMapping("/show3")
	public String getString(ModelMap model) {
		model.addAttribute("aaa", "1111");
		model.addAttribute("bbb","222");
	  return "center";  
	}

 请求路径:项目路径/adController/show3.do

返回路径:项目路径/center.jsp

URL = prefix前缀+/return的值+suffix组成

可以通过ModelMap构建返回的参数,该ModelMap不需要自己创建。

如果加上了@ResponseBody注解,则会直接将输出值返回输出到页面。

页面会直接显示 “center”

 

四:Void 

@RequestMapping("/show4")
	public void getVoid() {
	}

 请求路径:项目路径/adController/show3.do

 返回路径:对于请求路径  后缀为 .jsp

同样也可以构造ModelMap返回参数

 

小结:

1、使用String作为请求处理方法的返回类型是比较通用的方法,这样返回的逻辑视图名不会和请求的URL绑定,具有很大的灵活性,而模型数据也可以根据ModelMap构造控制。

2、使用Void,Map 返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。 

 

 

你可能感兴趣的:(spring mvc)