github: https://github.com/dengjili/springmvc
请求地址: http://localhost:8080/springmvc/param/normalParam?name=%张三¬e=mmp
// 如果参数名称与url中保持一致,则无需注解,自动映射
// 适用于参数个数较少
@RequestMapping("/normalParam")
public ModelAndView normalParam(String name, String note) {
logger.debug("name: {}", name);
logger.debug("note: {}", note);
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
return mv;
}
请求地址: http://localhost:8080/springmvc/param/beanParam?name=abc¬e=mmp2
// pojo中的属性与url中保持一致,则无需注解,自动映射
// 适用于参数个数较多,封装成bean对象
@RequestMapping("/beanParam")
public ModelAndView beanParam(BeanParam beanParam) {
logger.debug("name: {}", beanParam.getName());
logger.debug("note: {}", beanParam.getNote());
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
return mv;
}
BeanParam
public class BeanParam {
private String name;
private String note;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
}
请求地址: http://localhost:8080/springmvc/param/requestParam?pre_name=ab&pre_note=ha
// url和参数名称不一致,使用@RequestParam进行参数转换
// boolean required() default true;
@RequestMapping("/requestParam")
public ModelAndView requestParam(@RequestParam("pre_name") String name, @RequestParam("pre_note") String note) {
logger.debug("name: {}", name);
logger.debug("note: {}", note);
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
return mv;
}
请求地址: http://localhost:8080/springmvc/param/get/1236787/张三
// restful风格 关键字:@RequestMapping, @PathVariable
@RequestMapping(value = "/get/{id}/{name}", method = RequestMethod.GET)
public ModelAndView get(@PathVariable("id") String id, @PathVariable("name") String name) {
logger.debug("name: {}", id);
logger.debug("name: {}", name);
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
return mv;
}
前置页面 jquery.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
复杂参数学习
json
列表数据
自定义类型列表
表单序列化
请求地址: 详见jquery.jsp文件
// json数据传输
@RequestMapping(value = "/requestBody", method = RequestMethod.POST)
public ModelAndView requestBody(@RequestBody ComplexParam complexParam) {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject(complexParam);
mv.setView(new MappingJackson2JsonView());
return mv;
}
请求地址: 详见jquery.jsp文件
// list Array数据传输
@RequestMapping(value = "/listArray", method = RequestMethod.POST)
public ModelAndView listArray(@RequestBody List array) {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject(array);
mv.setView(new MappingJackson2JsonView());
return mv;
}
// list Array数据传输(自定义类型)
@RequestMapping(value = "/listCust", method = RequestMethod.POST)
public ModelAndView listCust(@RequestBody List array) {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject(array);
mv.setView(new MappingJackson2JsonView());
return mv;
}
请求地址: 详见jquery.jsp文件
// $("#form").serialize() 显示给出?name=baidu¬e=mmp
@RequestMapping(value = "/serialize", method = RequestMethod.GET)
public ModelAndView serialize(BeanParam beanParm) {
// 数据域
ModelAndView mv = new ModelAndView();
mv.addObject(beanParm);
mv.setView(new MappingJackson2JsonView());
return mv;
}