参数传递(View to Controller)
@RequestParam
Controller方法中参数前加@RequestParam可以直接传递参数。
@RequestMapping("/welcome")
public String welcome(@RequestParam String username){
logger.info("welcome, " + username);
return “index”;
}
浏览器访问地址:http://localhost:8080/SpringMVC08RequestParam/welcome?username=admin
将成功跳转到index.jsp页面。如下图:
使用required=true保证必须包含参数,required=false为非必须:
@RequestMapping("/welcome")
public String welcome(@RequestParam(value=“username”,required=true) String username){
logger.info(“welcome,” + username);
return “index”;
}
@RequestMapping
@RequestMapping可以标注在类定义处,也可以标注在方法定义处。@RequestMapping映射的请求信息必须保证全局唯一。
映射规则:
通过请求URL进行映射
通过请求参数进行映射
若选择方法参数直接入参的话,方法入参名必须与请求中参数名保持一致。
通过请求方法进行映射
GET
POST
上图指明:请求地址是“/welcome”,请求方法只能是“GET”,请求参数必须包含“username”。详细代码如下:
@RequestMapping(value="/welcome",method=RequestMethod.GET,params=“username”)
public String welcome(String username){
logger.info("welcome, " + username);
return “index”;
}
若选择方法参数直接入参的话,方法入参名必须与请求中参数名保持一致。
ModelAndView(Controller to view)
ModelAndView包含视图信息和模型数据信息。
常用方法:
(1)添加模型数据,相当于将数据添加到request中。
ModelAndView addObject(String attributeName,Object attributeValue);
ModelAndView addAllObjects(Map<String,?> modelMap);
(2)设置视图
void setView(View view);
void setViewName(String viewName);
示例代码:
@RequestMapping("/index1")
public ModelAndView index(String username){
logger.info("welcome! username: " + username);
//返回前端
ModelAndView mView = new ModelAndView();
mView.addObject(“username”, username);
mView.setViewName(“index”);
return mView;
}