2 xiangshuntianlong xiangshuntianlong 于 2015.07.19 20:40 提问

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”没有任何查询条件的查询。

不知道有没有表达清楚。

2个回答

CSDNXIAON
CSDNXIAON   2015.07.19 20:43

Spring MVC Controller线程问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

strutce
strutce   Ds   Rxr 2015.07.19 21:40

还是不知道你说的什么意思

Csdn user default icon
上传中...
上传图片
插入图片