我目前正在开发第一个Web应用程序。用户需要填写表单,其中一个信息是“城市”,作为选择类型输入。如果用户选择了一个城市,但其中一个信息无效,我希望所选城市在用户修复无效输入时留在那里。
例如,我是为用户需要输入的日期做的:
<input type=date name="endDate" value="<c:out value="${requete.endDate}"/>">
它正在工作,但对于选择类型输入我不知道该怎么做..
<select name="city">
<option value="City" selected>City</option>
<option value="Ottawa">Ottawa</option>
<option value="Toronto">Toronto</option>
<option value="Montreal">Montreal</option>
</select>
答案 0 :(得分:1)
同样的事情 - 假设选定的城市存储在request.city中。
您需要确保所选选项在JSP中具有“selected”属性,如下所示:
<select name="city">
<option value="City"
<c:if test="${empty request.city}">selected</c:if>>
City
</option>
<option value="Ottawa"
<c:if test="${request.city == 'Ottawa'}">selected</c:if>>
Ottawa
</option>
<option value="Toronto"
<c:if test="${request.city == 'Toronto'}">selected</c:if>>
Toronto
</option>
<option value="Montreal"
<c:if test="${request.city == 'Montreal'}">selected</c:if>>
Montreal
</option>
</select>
因此,总结一下这是做什么的 - “c:if”元素之间的任何内容只有在测试评估为true时才会输出为HTML。因此,所有这些测试都确定所选城市是否等于该选项所代表的值,如果是,则将“selected”属性添加到该元素。
答案 1 :(得分:1)
尝试使用简单的EL
和selected
属性:
<select name="city">
<option value="City" selected>City</option>
<option value="Ottawa" ${'Ottawa' eq param.city ? 'selected' : ''}>Ottawa</option>
<option value="Toronto" ${'Toronto' eq param.city ? 'selected' : ''}>Toronto</option>
<option value="Montreal" ${'Montreal' eq param.city ? 'selected' : ''}>Montreal</option>
</select>