jsp form submit 提交到后台的input元素的值中包含之前查询过的内容

本文探讨了在JSP中,form提交时input元素的值会包含之前查询的内容。通过分析前后台代码,排除了与搜索无关的数据。详细原因暂时未知,后续将进一步研究并更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分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>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值