【问题标题】:How to make the value in dropdownlist not change after submit in JSP?在JSP中提交后如何使下拉列表中的值不改变?
【发布时间】:2009-08-04 02:10:20
【问题描述】:

假设我有一个包含下拉列表的 jsp 页面。 当用户选择一个项目并单击提交以将 JSP 页面提交给自己时, 之后,JSP 页面将重新加载,之前选择的项目将被取消选择。 即使在重新加载 JSP 页面后,我怎样才能使它不改变?

【问题讨论】:

    标签: jsp drop-down-menu reload


    【解决方案1】:

    您必须重新选择它。

    所以它最终会是这样的:

     <select name="dropdown">
     <%
           String selectedItem = request.getParameter("dropdown");
           for( String item : values ) {
     %>
           <option <%=item.equals(selectedItem)?selected:""%>><%=item%>
    
     <%
           }
     %>
    

    这样,每次重新加载 jsp 页面时,都会验证当前正在绘制的项目是否与用户先前选择的项目相同。如果是这样,您将“选择”附加到选项(第一次它不会匹配任何内容)

    我对 JSP 有点生疏,所以,可能有一种更“优雅”的方式来做,但这种“旧式”确实有效。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      设置传入表单的optionselected 属性...您的输出应如下所示(假设用户选择了“Saab”):

      <select>
        <option>Volvo</option>
        <option selected="selected">Saab</option>
        <option>Mercedes</option>
        <option>Audi</option>
      </select>
      

      【讨论】:

      • 我认为这行不通,我们怎么知道用户选择了哪个选项?如果使用这种方法,我想我应该写这样的代码: ... ...我认为这不是正确的方法。你能给我示例代码吗?
      • 答案与其他所有答案相同...只是代码更少。 select 元素应该在表单中并且有一个 id(在示例中没有),当页面 POST 回 JSP 时,id 和所选 option 元素的值将被传递给表单。当您迭代元素以输出表单时,您需要测试每个选项的值是否等于传递给 POST 的值。
      【解决方案3】:

      我觉得这个方法比较好:

      <script type = "text/javascript"/>
      <%String selectedItem ;
      if(request.getAttribute("dropdown") != null){
        selected= request.getAttribute("dropdown");%>
      
      document.getElementById("selectbox").selectedIndex = selectedItem;
      <%}%>
      </script>
      

      我认为这种方法会奏效。

      【讨论】:

      • 这就是我所说的......我没有说怎么做......这应该可以。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2015-12-22
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      相关资源
      最近更新 更多