问题描述
- spring mvc 问题请教 controller 页面参数
-
操作的实体contact(联系人)
ContactController 里面有两个方法:// “/contact” 是默认调用的处理方法
@RequestMapping(method = RequestMethod.GET)
public String list(
@RequestParam(value = "page", defaultValue = "1") int pageNumber,
@RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize,
@RequestParam(value = "sortType", defaultValue = "auto") String sortType,
Model model, ServletRequest request) {
。。。。。。。。。。。。。。。
// 将搜索条件编码成字符串,用于排序,分页的URL
model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_"));
return "contact/contactList";
}//根据联系人ID(一个或多个),对联系人进行删除
@RequestMapping(value = "delete")
public String delete(
@RequestParam(value = "page", defaultValue = "1") int pageNumber,
@RequestParam(value = "page.size", defaultValue = PAGE_SIZE) int pageSize,
@RequestParam(value = "sortType", defaultValue = "auto") String sortType,
Model model, ServletRequest request) {
。。。。。。。。。。。。。。。
model.addAttribute("message", "成功删除联系人信息!");//最终非redirect,所以使用model保存操作结果信息。
return list(pageNumber, pageSize, sortType, model, request);
return "redirect:/contact/";
}目的:
1、http://localhost:8080/crm/contact?+一堆查询参数串。。。。。
---没问题,
通过
model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_"));
return "contact/contactList";
后,返回的 联系人列表页面 之前的查询参数都在。2、选中 联系人 进行删除操作。
提交的url是 http://localhost:8080/crm/delete
controller的delete 方法,我之所以放那么多参数,就是为了在delete方法中调用 list()方法,list()方法中对页面的参数有些特殊处理。delete()方法中最后:
情况1:return list(pageNumber, pageSize, sortType, model, request);
此情况会依照list方法,将导向 联系人列表页面(return "contact/contactList";),而且还是按照之前的查询参数查询出符合提交的联系人。并且之前的查询条件在页面上也可以展示。但问题是:浏览器上的URL是 http://localhost:8080/crm/contact/delete?+一堆查询条件
这种情况下如果刷新页面会有问题。我的目标是:
step1:http://localhost:8080/crm/contact?+一堆查询参数串。。。。。查询出符合条件的联系人
------这点没问题。step2:http://localhost:8080/crm/contact/delete 提交后,删除成功后。浏览器的url是
http://localhost:8080/crm/contact?+一堆查询参数串。。。。。在delete()方法的最后,我可以直接 return "redirect:/contact/"; 进行重定向,但这样最终是“http://localhost:8080/crm/contact”没有任何查询条件的查询。
不知道有没有表达清楚。
解决方案
解决方案二:
还是不知道你说的什么意思