部分jsp页的代码如下:
<form method="post" action="/detailInfoController/managerChange" id="managerChangeForm">
<div>
<span class="search-p">
<input id="inputTxt" name="keyword" value="${keyword}" type="text" class="search-p-input"
placeholder="可搜索需求编号、负责人ERP,表名">
</span>
<span class="search-bt-p">
<input id="searchBt" type="button" value="搜索" class="search-bt-p-input">
</span>
</div>
<table><%-- 此处是for循环画出的表格 --%></table>
</form>
后台的代码如下:
@RequestMapping("managerChange")
public String managerChange(Model model, String keyword){
List lists = detailInfoService.getDetailInfoListsForPage(keyword);
String erp = SessionUtils.getUserErp();
model.addAttribute("data", lists);
model.addAttribute("keyword", keyword);
model.addAttribute("userErp",erp);
return "detail/managerChange";
}
例如第一次查询的是aaaa,则后台keyword传入的值是aaaa,如果第二次查询的值是bbbb,则后台keyword传入的值就变成了bbbb,aaaa,当真是奇怪。
后来查看了一下了之前写过的相似的jsp,才发现是因为form的范围过大造成的。jsp部分的代码改成下面的代码就好了:
<form method="post" action="/detailInfoController/managerChange" id="managerChangeForm">
<div>
<span class="search-p">
<input id="inputTxt" name="keyword" value="${keyword}" type="text" class="search-p-input" placeholder="可搜索需求编号、负责人ERP,表名">
</span>
<span class="search-bt-p">
<input id="searchBt" type="button" value="搜索" class="search-bt-p-input">
</span>
</div>
</form>
也就是将与搜索无关的内容全都排除出去。具体的原因,还不清楚,待之后明白了再来补充,现在先记录一下。