使默认值成为先前选择的值 (JSTL)

making default value the previously selected value (JSTL)

本文关键字:JSTL 选择 默认值      更新时间:2023-09-26

我有一个下拉菜单,里面充满了账单名称:

<select id="mailer_filter">
<optgroup label="VIEW BY SUBSCRIPTION">
            <c:forEach var="Mailer" items="${mailerlist.billerNameList}">
            <option value="searchFor=${Mailer.billerName}&searchBy=3&addressTypeF=${requestScope.addressTypeF}&folder=${mailitems.mailboxAttributes.folder}"><c:out value="${Mailer.billerName}"/></option>              
            </c:forEach>
          </optgroup>
        </select>
        <script type="text/javascript">
          $('#mailer_filter').change(function(){
            epost.fn.windowLocation('mailList.a?' + $(this).val());
          });
        </script>

我想尝试做的是用户从下拉列表中选择了哪个项目。 以使该项目在页面再次加载数据时在下拉列表中显示为默认选定值。我假设有很多方法可以做到这一点,这里涉及的是将所选项目存储在请求范围内或我猜的东西。

变量 = ${Mailer.billerName} 是当用户从下拉列表中选择它时,我希望在重新加载时默认的名称。 感谢您的时间、知识和努力。

Indeed 存储要预先选择的值,并添加以下代码:

<option value="..." 
    <c:if test="${Mailer.billerName == valueToPreSelect}>
        selected="selected"
    </c:if>><c:out value="${Mailer.billerName}"/></option>

我不确定我是否正确回答了您的问题,但是您可以将 ${Mailer.billerName} 保存为请求属性,然后执行以下操作:

<c:forEach var="Mailer" items="${mailerlist.billerNameList}">
            <option 
<c:if check='${request.billerName eq Mailer.billerName}' >selected</c:if>
value="searchFor=${Mailer.billerName}&searchBy=3&addressTypeF=${requestScope.addressTypeF}&folder=${mailitems.mailboxAttributes.folder}"><c:out value="${Mailer.billerName}"/></option>              
            </c:forEach>