当前位置: 首页 > 知识库问答 >
问题:

Spring MVC下拉列表根据表单操作保留值

哈烨熠
2023-03-14

我在Spring MVC应用程序中有一个JSP页面,其中只有几个提交按钮。它有很少的下拉框,我需要保留应用程序预定义的值(例如,“Get Info”)用于提交按钮的点击(“BTN SelecTall”,“BTN UnselecTall”),并且需要保留用户选择的值(除了“Get Info”)用于提交按钮的点击(“Default Action”,“BTN Reset”)。

创建了一个(hidden,modelattribute)变量'button clicked',它捕获用户选择的按钮操作的值。例如“default action”、“btn reset”,并且我能够在JSP页面上看到用户选择的按钮值。

<form:select path = "user.action" multiple="false" >
    <c:forEach items="${actions}" var="role">
         <option value="${role}" ${(role eq 'getInfo' and (buttonClicked eq 'defaultAction' or buttonClicked eq 'btnReset')) ? 'selected' : ''}>${role}</option>
    </c:forEach>
</form:select>

添加了上面的JSTL逻辑来验证迭代的值,该值等于“get info”,并使用与解决方案的buttonClicked变量一起使用。但是,由于某些原因,我不能在JSTL foreach中使用buttonClicked值进行条件操作。

谁能指出我做错了什么。或者如果有其他更好的解决方案或链接,请分享。

谢谢你,拉梅什

共有1个答案

花欣然
2023-03-14

您可以使用JavaScript实现这一点。您可以将buttonclicked的值赋给javascript变量,并根据条件在下拉列表中设置该值

<form:select path = "user.action" multiple="false" >
    <c:forEach items="${actions}" var="role">
         <option value="${role}">${role}</option>
    </c:forEach>
</form:select>
...
<script>
      var buttonClicked = <c:out value="${buttonClicked}"/>
      var roleObj = document.getElementById('<dropdown id>');
      setValue(roleObj,'getInfo'); 
      function setValue(selectObj, valueToSet) {
        for (var i = 0; i < selectObj.options.length; i++) {
          if (selectObj.options[i].text== valueToSet
              && (buttonClicked == 'defaultAction' || buttonClicked == 'btnReset' )) {
            selectObj.options[i].selected = true;
             return;
           }
        }
      } 
</script>
 类似资料:
  • 问题内容: 我想创建两个下拉列表,类别和项目。 如果我选择名为car的类别之一,则项目下拉列表应包含Honda,Volvo和Nissan。 如果我选择一个名为phone的类别,则项目下拉列表应具有此iPhone,Samsung,Nokia。 我怎样才能做到这一点?我知道我无法使用纯HTML做到这一点。 问题答案: 工作演示 (带有jquery) 更新 :使用eval()能够添加所需的任意数量的数组

  • 问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {

  • 问题内容: 我有两个看起来像的清单: 我要做的是将list1的所有那些元素都保留在list2中。结果应该是: 问题答案: 使用运算符,您可以检查元素是否在序列中。 使用列表理解: 但是效率不高。您最好转换为对象。

  • 问题内容: 我是django的新手,我想制作一个简单的表格,根据文档,我可以使用django的表格模块制作表格 我想知道的是如何创建一个月的天下拉列表,即从1到31? 有些人在表单模板中使用javascript完成此操作,可以在Django中完成吗? 问题答案: 您正在寻找默认情况下呈现为html元素的。 https://docs.djangoproject.com/zh- CN/dev/ref/

  • 我在我的jsp中有一个下拉列表,使用Spring mvc,我面临的问题是,在表单提交时,下拉列表中的值会更改为默认值。 我已经绑定了这个下拉列表,如下所示- BackingObject包含ObjectA的List,ObjectA包含另一个Object ObjectB,ObjectB包含基元类型属性id 我正在使用ajax向控制器发送post请求。

  • 我有三个下拉列表,分别是国家、州和城市。首先,国家/地区下拉列表将显示所有国家/地区。当选择一个国家/地区时,将从MySQL数据库中提取相应的国家/地区,并显示在“国家/地区”下拉列表中。与选择州一样,相应的城市将从MySQL数据库中提取,并显示在cities下拉列表中。 下面是我选择国家,州,城市并单击提交按钮之前的默认显示。 在我选择国家,州,城市,并点击提交按钮,如下所示。它将刷新并返回默认