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

时间:2012-06-25 20:53:55

标签: java javascript jsp jstl el

我有一个下拉菜单,里面装满了比尔名字:

<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}是我希望在用户从下拉列表中选择时重新加载时默认的名称。感谢您的时间,知识和努力。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

我不确定我的问题是否正确,但您可以将$ {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>