提交方法: @RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(@ModelAttribute("user") @Valid User user,@RequestParam(value = "nameSearch", required = false) String nameSearch){
if(user.getId() != null && !user.getId().equals("")){
User userTemp = userService.get(user.getId());
userTemp.setName(user.getName());
userTemp.setPassword(user.getPassword());
userTemp.setEmail(user.getEmail());
userService.saveOrUpdate(userTemp);
}else{
userService.saveOrUpdate(user);
}
return "redirect:/user?nameSearch=" + nameSearch;
提交后列表显示方法: @RequestMapping(method = RequestMethod.GET)
public ModelAndView list(@RequestParam(value = "pageNo", required = false) Integer pageNo,@RequestParam(value = "nameSearch", required = false) String nameSearch){
ModelAndView view = new ModelAndView();
pageNo = pageNo==null?1:pageNo;
nameSearch = nameSearch==null?"":nameSearch;
Page page = userService.queryUserPageByCriteria(pageNo, 10, nameSearch);
view.addObject("page", page);
view.addObject("nameSearch",nameSearch);
view.setViewName("user/index");
return view;
}
这里提交时"redirect:/user?nameSearch=" + nameSearch,有个nameSearch的参数需要提交传到list显示方法里面,
但是如果nameSearch是英文或者数字没有问题,但如果是中文 nameSearch接收到的就是空字符串。
为什么呢?怎么解决?
public String save(@ModelAttribute("user") @Valid User user,@RequestParam(value = "nameSearch", required = false) String nameSearch){
if(user.getId() != null && !user.getId().equals("")){
User userTemp = userService.get(user.getId());
userTemp.setName(user.getName());
userTemp.setPassword(user.getPassword());
userTemp.setEmail(user.getEmail());
userService.saveOrUpdate(userTemp);
}else{
userService.saveOrUpdate(user);
}
return "redirect:/user?nameSearch=" + nameSearch;
提交后列表显示方法: @RequestMapping(method = RequestMethod.GET)
public ModelAndView list(@RequestParam(value = "pageNo", required = false) Integer pageNo,@RequestParam(value = "nameSearch", required = false) String nameSearch){
ModelAndView view = new ModelAndView();
pageNo = pageNo==null?1:pageNo;
nameSearch = nameSearch==null?"":nameSearch;
Page page = userService.queryUserPageByCriteria(pageNo, 10, nameSearch);
view.addObject("page", page);
view.addObject("nameSearch",nameSearch);
view.setViewName("user/index");
return view;
}
这里提交时"redirect:/user?nameSearch=" + nameSearch,有个nameSearch的参数需要提交传到list显示方法里面,
但是如果nameSearch是英文或者数字没有问题,但如果是中文 nameSearch接收到的就是空字符串。
为什么呢?怎么解决?
save方法返回前加一句。
改成:nameSearch = URLEncoder.encode(nameSearch);
return "redirect:/user?nameSearch=" + nameSearch;
然后list方法里面也加一句。
nameSearch = URLDecoder.decode(nameSearch);