使用增强型for循环在jsp中无法正确绑定到Select Option的值

时间:2014-05-21 05:10:06

标签: java jsp arraylist foreach

select选项值在jsp页面中动态绑定,但if第一个值是Views 所有其他选项值正在成为明智的视图,如果值为Edit,那么所有变为Edit都无法解决问题,在plevel arrayList中{{1}它有EditViews值,帮助我找到解决方案....

<select id="change">
    <% for (Object level : plevel) { 
        if (level.equals("Views")) { %>
            <option><%=level%></option>
            <option>Edit</option> 
        <%} else if (level.equals("Edit")) {%>
        <option><%=level%></option>
        <option>Views</option>
        <% } %>
    </select>
}

这是我的输出图像 This is my output image

2 个答案:

答案 0 :(得分:0)

正如你在评论中提到的,你需要2个选择框,做这样的事情,这可以为每个对象一次打印一个选择框。如果您需要单独的那些尝试@vjy提到

    <% for (Object level : plevel) { 
        if (level.equals("Views")) { %>
            <select id="change1">
            <option><%=level%></option>
            <option>Edit</option> 
            </select>
        <%} %>   
        <% else if (level.equals("Edit")) { %>
             <select id="change2">
            <option><%=level%></option>
            <option>Views</option> 
            </select>
        <%} %>   
   <%}%>

<强>更新

使用jstl你可以轻松完成

         <c:forEach var="temp" items="${plevel}">
                    <c:if test="${temp eq 'Views'}">
                    <select id="change">
                       <option>${temp}</option>
                    </select>
                    </c:if>
                    <c:if test="${temp eq 'Edit'}">
                    <select id="change2">
                       <option>${temp}</option>
                    </select>
                    </c:if>
         </c:forEach>

尝试上面的代码,将script与scriptlet分开包装。另外看看 How to avoid Java code in JSP files?

希望这会有所帮助!!

答案 1 :(得分:0)

如果您需要两个select框,则不应将它们嵌套在单个for循环中。试试这段代码。

<select id="change1">
        <% for (Object level : plevel) { 
            if (level.equals("Views")) { %>
                <option><%=level%></option>
                <option>Edit</option> 
            <%} %>   
      <%}%>
</select>

    <select id="change2">
        <% for (Object level : plevel) { 
            if (level.equals("Edit")) { %>
                <option><%=level%></option>
                <option>Views</option> 
            <%} %>   
       <%}%>
</select>

最好使用jstl代替在jsp中编写java代码