如何保留选择框值

时间:2014-07-25 12:11:33

标签: jsp java-ee struts2 jstl jsp-tags

我有一个选择框。有4个值(使用jstl标签生成)和加载按钮就在那里。

我在点击加载按钮时调用struts动作

在struts动作类中,我添加了request.getAttribute("TA",value);

现在我想在jsp页面中保留以前选择的值

                        <%if(request.getAttribute("TA")!=null && request.getAttribute("TA").equals("Cloud")) {%>
                            <option value='${i.thematicArea}' selected>${i.thematicArea}</option>
                        <%} else {%>     
                            <option value='${i.thematicArea}'>${i.thematicArea}</option>
                            <%} %>
                        </c:forEach>
                        </select>
                        </td>                   
                        <td><input type="submit" id="button" name="button" value="Load"></td>

我想与${i.thematicArea}而不是云进行比较。如何使用jstl做到这一点 例如:

request.getAttribute("TA").equals("Cloud")) 
instead of cloud i want to check with ${i.thematicArea}

提前致谢

2 个答案:

答案 0 :(得分:1)

一种干净的方式是这样的(使用三元运算符将它减少到一行):

<select>

<c:forEach items="..." var="i">

   <option value='${i.thematicArea}' ${requestScope.TA == i.thematicArea ? 'selected' : ''}>${i.thematicArea}</option>

</c:forEach>

</select>

答案 1 :(得分:0)

像这样的东西

<c:if test="${not empty TA and TA eq i.thematicArea}">
  <option value='${i.thematicArea}' selected>${i.thematicArea} </option>
</c:if>
<c:if test="${empty TA or not TA eq i.thematicArea}">
  <option value='${i.thematicArea}'>${i.thematicArea}</option>
</c:if>

如果要在option标记上应用不同的标记,请使用此选项。