我不知道为什么这不起作用。是因为它们在两个独立的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>
1条答案
按热度按时间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}