仅基于列表中的某些值填充jsp

时间:2016-05-02 09:18:16

标签: jsp

我有一个从我的xml填充的列表。这包含一组值,例如A,B,C,D和E. 我正在使用此列表出现在JSP的下拉菜单中。无论如何我只能在下拉菜单中填充A,B,C和D,而不修改xml而不是'E'?

  <% List services = AccountingCRCWrapper.getInstance().getServicesList();%>
            <td width="60%"class="value">
            <select name ="service"  id="service">
            <%if (services!=null && services.size()>0){
                 LabelValueBean service = null;
                 String value = "";
                 String text   = "";

                    for (int i=0; i<services.size(); i++){

                        String Selected = "";
                        service = (LabelValueBean)services.get(i);
                         value  = service.getLabel();
                         text   = service.getValue();
                         if (value.equalsIgnoreCase(AccountingConstants.IWF_SERVICE)){
                            Selected = "selected";
                         }
                            if(value.equalsIgnoreCase("b2b_analytics_si"){
                                continue;
                            }

                %>
            <option value="<%=value%>" <%=Selected%> ><%=text%></option>
            <%} }%>
            </select>
            </td>
          </tr>

2 个答案:

答案 0 :(得分:0)

对于注释,不建议使用jsp文件中的Scriptlet标记。见BalusC Answer - How to avoid Java code in JSP files?

在显示options

之前,您应该再添加一个if条件
<% if(!value.equalsIgnoreCase("value_to_be_hide"){%>
     <option value="<%=value%>" <%=Selected%> ><%=text%></option>
<%}%>

答案 1 :(得分:0)

您可以使用核心库中提供的 C:if 标记隐藏任何行

以下是示例代码:

<form:select path="comboBox">
    <form:option value="-1">&nbsp;</form:option>
    <c:forEach var="val" begin="1" end="12">
        <c:if test="${val < 10}">
            <c:set var="val" value="0${val}"></c:set>
        </c:if>
        <form:option value="${val}">${val}</form:option>
    </c:forEach>
</form:select>