jsp form submit 提交到後臺的input元素的值中包含之前查詢過的內容
阿新 • • 發佈:2019-01-04
部分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>
也就是將與搜尋無關的內容全都排除出去。具體的原因,還不清楚,待之後明白了再來補充,現在先記錄一下。