【SpringMvc】06 RequestMapping+Controller返回值

1、 RequestMapping

1.1 URL路径映射

@RequestMapping(value="/item")或@RequestMapping("/item")

value的值是数组,可以将多个url映射到同一个方法

1.2 窄化请求映射

在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理。

如下:

@RequestMapping放在类名上边,设置请求前缀

@Controller

@RequestMapping("/item")

方法名上边设置请求映射url:

@RequestMapping放在方法名上边,如下:

@RequestMapping("/queryItem ")

//例如:当前list的访问路径   localhost:8081/ssm0523-1/items/list.action

1.3请求fang方法限定

@RequestMapping((value="/list",method={RequestMethod.GET,RequestMethod.POST})

2、Controllerfa返回值

2.1 ModelAndView

	modelAndView.addObject("itemList", list); 指定返回页面的数据
		modelAndView.setViewName("itemList");	  指定返回的页面

2.2 String(推荐使用)
        返回普通字符串,就是页面去掉扩展名的名称, 返回给页面数据通过Model来完成


        返回的字符串以forward:开头为请求转发

扫描二维码关注公众号,回复: 2351115 查看本文章


        返回的字符串以redirect:开头为重定向 使用model存储的数据可以传递

	@RequestMapping("/itemEdit/{id}")
	public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, 
			 Model model) throws Exception{
		
		//String idStr = reuqest.getParameter("id");
		Items items = itmesService.findItemsById(id);
		
		//Model模型:模型中放入了返回给页面的数据
		//model底层其实就是用的request域来传递数据,但是对request域进行了扩展.
		model.addAttribute("item", items);
		
		//如果springMvc方法返回一个简单的string字符串,那么springMvc就会认为这个字符串就是页面的名称
		return "editItem";
	}

2.3 返回void(使用它破坏了springMvc的结构,所以不建议使用)
        可以使用request.setAttribut 来给页面返回数据
        可以使用request.getRquestDispatcher().forward()来指定返回的页面
        如果controller返回值为void则不走springMvc的组件,所以要写页面的完整路径名称

2.4 路径选择

      相对路径:相对于当前目录,也就是在当前类的目录下,这时候可以使用相对路径跳转
     绝对路径:从项目名后开始.
     在springMvc中不管是forward还是redirect后面凡是以/开头的为绝对路径,不以/开头的为相对路径
    例如:forward:/items/itemEdit.action 为绝对路径
         forward:itemEdit.action为相对路径

猜你喜欢

转载自blog.csdn.net/lxiansheng001/article/details/81089396
今日推荐