您的位置:首页 > 编程语言 > Java开发

springmvc参数的传递

2015-10-15 16:22 561 查看
在controller中的方法中,添加对应前后台传递的参数。

(一)后台获取前台传递的数据,这里只是从request域里面的参数

//1.nowPage是从前台传递过来的单个参数
@RequestMapping(value="/queryAll.do")
public String queryAll(Integer nowPage){
System.out.println("nowPage:"+nowPage);
return null;
}
//2.根据servletRequest获取前台参数
@RequestMapping(value="/queryAll.do")
public String queryAll(HttpServletRequest request){
Integer nowPage = Integer.valueOf(request.getParameter("nowPage"));
return null;
}
/*3.后台获取从前台获取的参数,组成的对象。必须有User类,并且有对应的get,set方法,getName,setName
属性名在拼接get,set的时候,属性名的首字母必须大写。*/
@RequestMapping(value="/queryAll.do")
public String queryAll(User user){
System.out.println(user);
return null;
}

public class User{
private String name;
private String addr;
puclic void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
puclic void setAddr(String addr){
this.addr = addr;
}
public String getAddr(){
return addr;
}
}

//4.根据方法中的注解@RequestParam获取前台参数
@RequestMapping(value="/queryAll.do")
public String queryAll(@RequestParam Integer nowPage){
System.out.println("nowPage:"+nowPage);
return null;
}


(二)后台向前台传递数据

//1.后台向前台传递参数,放入request中,前台可以获取数据,再显示
@RequestMapping(value="/queryAll.do")
public String queryAll(Map<String,Object> map){
List<User> userList = userService.queryAll();
map.put("userList",userList);
return null;
}

//2.将参数放入到ModelAndView对象中,实现后台向前台的参数传递
@RequestMapping(value="/queryAll.do")
public String queryAll(){
Map<String,Object> map = new HashMap<String, Object>();
List<User> userList = userService.queryAll();
map.put("userList", userList);
//跳转到名字为success.jsp的页面
return new ModelAndView("success", map);
}

//3.将参数放入request中传递
@RequestMapping(value="/queryAll.do")
public String queryAll(HttpServletRequest request){
List<User> userList = userService.queryAll();
request.setAttribute("deptList", deptList);
return null;
}

//4.使用ModelMap来传递参数
@RequestMapping(value="/queryAll.do")
public String queryAll(ModelMap modelMap){
List<User> userList = userService.queryAll();
modelMap.addAttribute("deptList", deptList);
return null;
}

//5.使用Model来传递参数
@RequestMapping(value="/queryAll.do")
public String queryAll(Model model){
List<User> userList = userService.queryAll();
model.addAttribute("deptList", deptList);
return null;
}


(三)用session来传递数据

//1.将后台参数放入到session中,必须在类名上将要放入到session中的参数,放到到注解中

@Controller
@Scope("prototype")
@SessionAttribute(value="userList")
public class MyController{
@Resource
private UserService userService;
//Map<String,Object> map可以是Model map,ModelMap map。
public String queryAll(Map<String,Object> map){
List<User> userList = userService.queryAll();
return null;
}
}

//2.方法参数为HttpSession
@RequestMapping(value="/queryAll.do")
public String queryAll(HttpSession session){
List<User> userList = userService.queryAll();
session.setAttribute("deptList", deptList);
return null;
}


(四)@PathVariable注解的使用。在方法参数中添加此注解,那么RequestMapping中的格式就是必须的格式,@RequestMapping(value=”/query/{id}”)

@RequestMapping(value="/getOne/{id}")
public void getOne(@PathVariable Integer id){
System.out.println("id = "+id);
Dept dept = deptService.getOne(id);
System.out.println(dept.getDname());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc