springmvc RequestMapping 请求及参数绑定
/** * 请求参数与实际参数不一致时,返回的字符串代表逻辑视图名 * @param uname * @return */ @RequestMapping("/handle1") public String handle1(@RequestParam("userName") String uname) { logger.info("uname:"+uname); return "success"; }
/** * @RequestHeader 获取报文头 * @CookieValue 获取cookie * * @param sessionId * @param accpetLanguage * @return */ @RequestMapping("/handle2") public ModelAndView handle2(@CookieValue("JSESSIONID") String sessionId,@RequestHeader("Accept-Language") String accpetLanguage) { logger.info("---JSESSIONID:"+sessionId); logger.info("---Language:"+accpetLanguage); ModelAndView mv=new ModelAndView(); mv.setViewName("success"); mv.addObject("user",new User()); return mv; }
/** * 获取 ServletApi 对象作为入参 * HttpServletRequest request,HttpServletResponse response,HttpSession session * @param request * @return */ @RequestMapping("/handle4") public ModelAndView handle4(HttpServletRequest request, HttpServletResponse response, HttpSession session) { logger.info("request:"+request.getParameter("userName")); ModelAndView mv=new ModelAndView(); mv.setViewName("success"); mv.addObject("user",new User()); return mv; }
/** * 了解 * @CookieValue 映射一个Cookie值,属性同@RequestParam * @param sessionId * @return */ @RequestMapping("/testCookeValue") public String testCookeValue(@CookieValue(value="JSESSIONID") String sessionId) { System.out.println(" sessionId:"+sessionId); return SUCCESS; }
@RequestMapping(value="/handle6") public String handle6(@RequestBody String requestBody) { logger.info("requestBody:"+requestBody); return "success"; } @RequestMapping(value="/handle7/{imageId}") public byte[] handle7(@PathVariable("imageId") String imageId) throws IOException { logger.info("imageId:"+imageId); logger.info("imageId:"+this.getClass()); Resource res=new ClassPathResource("/image.jpg"); byte[] fileData=FileCopyUtils.copyToByteArray(res.getInputStream()); return fileData; }
//ModelAndView 的使用 @RequestMapping(value="/registerImpl") public ModelAndView registerImpl(User user) { ModelAndView mv=new ModelAndView(); mv.setViewName("/user/registerSuccess"); mv.addObject("user",user); return mv; }
/** * 使用占位符参数绑定 * @param userId * @return */ @RequestMapping(value="/{userId}") public ModelAndView showDetail(@PathVariable("userId") String userId) { ModelAndView mv=new ModelAndView(); mv.setViewName("user/showDetail"); mv.addObject("user",new User("123","test","pwd")); return mv; }
@Controller @RequestMapping(value="/owners/{ownerId}") public class UserPetController { private static Logger logger = Logger.getLogger(UserPetController.class); @RequestMapping("/pets/{petId}") public void findPet(@PathVariable String ownerId,@PathVariable String petId) { logger.info("ownerId:" + ownerId + " petId:"+petId); } }
/** * @RequestParam 来映射请求参数, * value 值即为请求参数的参数名 * required 该参数是否必须 默认为true * defaultValue 请求参数的默认值 * @param un * @param age * @return */ @RequestMapping("/testRequestParam") public String testRequestParam(@RequestParam("userName") String un,@RequestParam(value="age",required=false,defaultValue="0") Integer age) { System.out.println("testRequestParam, username:"+un); System.out.println("testRequestParam, age:"+age); return SUCCESS; }
/** * @PathVariable 可以来映射URL 中的占位符到目标方法的参数中 * @param id * @return */ @RequestMapping("/testPathVariable/{id}") public String testPathVariable(@PathVariable("id") long id ) { System.out.println("id:"+id); return SUCCESS; }
使用rest风格 ,web.xml 中加入
<!-- 配置rest HiddenHttpMethodFilter ,可以把Post请求,转为DELETE 或PUT请求--> <filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-context.xml</param-value> </context-param>
/** * rest 接口 * @param id * @return */ @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET) public String testRest(@PathVariable("id") long id) { System.out.println("testRest GET:"+id); return SUCCESS; } @RequestMapping(value="/testRest",method=RequestMethod.POST) public String testRest() { System.out.println("testRest Post"); return SUCCESS; } @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE) @ResponseBody public String testRestDelete(@PathVariable("id") long id) { System.out.println("testRest DELETE:"+id); return SUCCESS; } @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT) @ResponseBody public String testRestPut(@PathVariable("id") long id) { System.out.println("testRest PUT:"+id); return SUCCESS; }

浙公网安备 33010602011771号