JSP 无法将所选值从下拉列表提取到JSTL

zqdjd7g9  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(122)

我不知道为什么这不起作用。是因为它们在两个独立的JSP文件中吗?
第一个jsp:

<form:select path="ShopParameters.foodType" id="food-type">
     <form:options items="${foodTypes}"/>
 </form:select>

第二个jsp:

<c:if test="${param.food-type == 2}">
                <form:options items="${veganOptions}"/>
            </c:if>

我的第二个JSP中的if语句从来没有计算为true。我也尝试过删除param并只检查${food-type == 2},但没有成功。
我遵循了以下指南:http://www.java2s.com/Tutorial/Java/0380__JSTL/GetvaluefromFormTextFieldAndOutputthevaluebyusingJSTL.htm .
更新:
我试着通过将所有内容放在一个JSP中来简化/缩小范围,并尝试了一系列不同的内容,但仍然无法显示任何内容。我只能从model属性中提取内容,但我不想这样做。

<input type="hidden" id="groceryType" name="groceryType" value="2">

        <c:if test="${param.groceryType == 2}">
        <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${param.groceryType == '2'}">
          <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${param.groceryType eq '2'}">
           <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${param.groceryType eq 2}">
            <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${groceryType == 2}">
          <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${groceryType== '2'}">
          <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${groceryType eq '2'}">
            <form:options items="${veganOptions}"/>
        </c:if>
        <c:if test="${groceryType eq 2}">
           <form:options items="${veganOptions}"/>
        </c:if>
byqmnocz

byqmnocz1#

与Java一样,在表达式语言中,-字符是减法运算符
换句话说,${param.food-type == 2}没有达到您的预期。
添加空格后,您将看到它 * 实际 * 的作用:${param.food - type == 2}.
有几种解决方案:
1.使用下划线:id="food_type"${param.food_type == 2}
1.使用驼峰式大小写:id="foodType"${param.foodType == 2}
1.使用大括号表示法:id="food-type"${param['food-type'] == 2}

相关问题