spring Mvc框架controller请求处理方法中的方法参数和返回类型

贴几个例子(例子并不是完整的)

@RequestMapping(value="/login")
	 public ModelAndView login(@RequestParam("loginname") String loginname,
			 @RequestParam("password") String password,
			 HttpSession session,
			 ModelAndView mv){
		// 调用业务逻辑组件判断用户是否可以登录
		User user = hrmService.login(loginname, password);
		if(user != null){
			// 将用户保存到HttpSession当中
			session.setAttribute(HrmConstants.USER_SESSION, user);
			// 客户端跳转到main页面
			mv.setViewName("redirect:/main");
@RequestMapping(value="/user/selectUser")
	 public String selectUser(Integer pageIndex,
			 @ModelAttribute User user,
			 Model model){
		System.out.println("user = " + user);
		PageModel pageModel = new PageModel();
		if(pageIndex != null){
			pageModel.setPageIndex(pageIndex);
		}
		/** 查询用户信息     */
		List<User> users = hrmService.findUser(user, pageModel);
		model.addAttribute("users", users);
		model.addAttribute("pageModel", pageModel);
		return "user/user";

一:请求方法中经常出现的参数类型有

1.@RequestParam:从jsp页面向controller 传递数据

@RequestParam("password") String password

2.Model:比较重要,默认情况下请求处理方法也会生成一个隐式的model,当使用参数Model model,可以引用到那个隐式的model,使用里面的属性或者是添加属性(值),model.addAttribute(String attributeName.String attributeValue),添加到Model中就是将数据添加到了request当中。jsp页面使用requestScope便可以接收,如上面第二个案例

Model 和ModelAndView 对比:

(1)参数Model model ,必要出现model.addA他tribute(),但是返回类型可以任意

(2)参数ModelAndView mv ,返回值类型一定是ModelAndView,return mv,mv.addObject (String attributeName.String attributeValue)效果与Model 相同

3.ModelAndView (特点都在上面的比较中)

4.@ModelAttribute:使用的方法有很多

特点如下:

(1)@ModelAttribute 修饰的方法会在Controllerde每个方法之前被执行,因此一个Controller映射多个URL时,要谨慎使用。

(2)@ModelAttribute只支持一个属性value,类型为String,表示绑定的属性名称

作用也是给这个属性名称赋值并放到model中,使得jsp页面可以通过 requestScope来获得

(3)@ModelAttribute 可以成为参数类型@ModelAttribute User user, jsp页面的可以使用requestScope.user.username获取

二:请求处理方法中经常出现的返回类型为

1.String 2.ModelAndView  

三:解析一段实例

@RequestMapping(value="/user/selectUser")
	 public String selectUser(Integer pageIndex,
			 @ModelAttribute User user,
			 Model model){
		System.out.println("user = " + user);
		PageModel pageModel = new PageModel();
		if(pageIndex != null){
			pageModel.setPageIndex(pageIndex);
		}
		/** 查询用户信息     */
		List<User> users = hrmService.findUser(user, pageModel);
		model.addAttribute("users", users);
		model.addAttribute("pageModel", pageModel);
		return "user/user";
		
	}

先创建对象users

List<User> users = hrmService.findUser(user, pageModel)

将对象加入model

model.addAttribute("users", users);

使得

 @ModelAttribute User user

可以在页面获取属性值

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wolf_goat/article/details/80316570
个人分类: spring MVC
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

spring Mvc框架controller请求处理方法中的方法参数和返回类型

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭