部分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>也就是将与搜索无关的内容全都排除出去。具体的原因,还不清楚,待之后明白了再来补充,现在先记录一下。
