Spring mvc 的controller

来源:互联网 发布:adobe muse for mac 编辑:程序博客网 时间:2024/05/09 10:48
package com.yuanhongfei.controller;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;import com.yuanhongfei.entity.UserInfo;import com.yuanhongfei.service.UserInfoService;/*** * '@Controller' 为 使用spring mvc方式而不使用struts来编写MVC思想中的Controller层。 * '@Controller' 的类 spring会自动扫描并注册,并且作为控制器(靠springmvc-context.xml中配置<annotation-driven />来扫描这种类) * *  作为Controller的类的其中面向页面请的的方法中的参数有很多,且都是可选参数,可根据需要来选择,有: *  1.@PathVariable String id 为 如果 '@RequestMapping'的value写的是 /{id}/{name} 等 此写法可以直接获取传过来的{id}的值并赋给id *  2.@ModelAttribute("entity") Entity entity 将页面传入的参数自动封装到Entity类中,需页面的表单name与类中的属性名一致 *  3.HttpServletRequest request, HttpServletResponse response 获取request和response *  4.@RequestParam("a") String a 可以单个接受页面的参数a *  5. Model model 可以model可以将一些对象进行addAttribute操作,然后到页面可以获取这些对象。 * * @author HOFEY *//**在做添加和修改时候,应该先跳转到添加或修改的页面 * (也就是说先写跳转的controller,而修改的时候应该获取原来实体的id,然后调用根据id查询实体的service方法,将实体属性信息显示到更新页面,提交的时候也是用add方法) * user controller * @author HOFEY * */@Controller@RequestMapping("user")//如果 controller中用到@RequestMapping("user"),那么要访问此controller就必须在路径中加上userpublic class UserController {//@Autowired@Resource//@Autowird自动注入默认按类型注入,推荐使用@Resource按名称注入private UserInfoService userService;public UserInfoService getUserService() {return userService;}public void setUserService(UserInfoService userService) {this.userService = userService;}@RequestMapping(value="/list",method=RequestMethod.GET)public String queryAllUserInfo(Model model){List<UserInfo> userinfoList = userService.queryAllUserInfo();model.addAttribute("userinfolist", userinfoList);return "userInfoList";}/** * 跳转到添加页面 * @return */@RequestMapping(value="/toAddUserPage")public String toAddUserPage(){return "addUserPage";}/** *  * 添加controller * @param userinfo * @return */@RequestMapping(value="/addUser",method=RequestMethod.POST)//@ModelAttribute("entity") Entity entity 将页面传入的参数自动封装到Entity类中,需页面的表单name与类中的属性名一致public ModelAndView addUser(@ModelAttribute("userinfo") UserInfo userinfo){userService.addUser(userinfo);return new ModelAndView("redirect:/user/list");//让跳转到list界面直接显示 而不是跳到成功页面   重定向 redirect:/user/list}/** *  * 跳转到更新用户信息页面 * controller */@RequestMapping(value="/{id}")/** *  * @param id * @RequestParam("id") String id 获取页面传过来的值 * @param Model model 可以model可以将一些对象进行addAttribute操作,然后到页面可以获取这些对象 * @return */public String toUpdateUserPage(@PathVariable String id,Model model){UserInfo userInfo = userService.queryUserById(id);model.addAttribute("userInfo", userInfo);return "updateUserPage";}/** *  * @PathVariable String id   参数获取方法 * @RequestMapping(value="/{id}") * public String toUpdateUserPage(@PathVariable String id,Model model){System.out.println("跳转到更新页面上的参数值是"+id);UserInfo userInfo = userService.queryUserById(id);model.addAttribute("userInfo", userInfo);System.out.println("跳转到更新页面获取到的性别是"+userInfo.getSex());return "updateUserPage";} * @RequestParam("id") String id   参数获取方法@RequestMapping(value="toUpdateUserPage")public String toUpdateUserPage(@RequestParam("id") String id,Model model){UserInfo userInfo = userService.queryUserById(id);model.addAttribute("userInfo", userInfo);System.out.println("跳转到更新页面获取到的性别是"+userInfo.getSex());return "updateUserPage";}*//** * 更新用户信息Controller *  */@RequestMapping(value="updateUser", method=RequestMethod.POST)public String updateUser(@ModelAttribute("userinfo") UserInfo userinfo){if(userinfo.getId()!=null){userService.addUser(userinfo);//重定向到list页面return "redirect:/user/list";}elsereturn "error";}/** * 删除用户 * @param userInfo * @return */@RequestMapping("deleteUser")public String deleteUser(UserInfo userInfo){userService.deleteUser(userInfo);return "redirect:/user/list";}}

0 0