我在jsp页面中使用了spring标签。
现在我遇到了使用表单的情况:选择下拉列表。
如果我在下拉列表中选择第一个值,则应该显示“normal.jsp”页面。如果我选择第二个值“reverse.jsp”页面应该显示。
这两个jsp页面都应显示在下拉列表下方的主页面中。
在jsp中实现这一目标的最佳方法是什么?
我正在尝试使用jstl标签,但表单未显示。
这是我写的代码
<tr>
<td>Types of Auction :-</td>
<td>
<form:select id="auctionType" path="auctionType">
<form:option value="0" label="Select" />
<form:options items="${auctionTypesList}" itemValue="auctionTypeId" itemLabel="auctionTypeDesc" />
</form:select>
</td>
</tr>
<tr>
<td>
<c:choose>
<c:when test="${param.auctionType == 1}">
<c:import url="/normalAuction.jsp" var="normal"/>
</c:when>
<c:when test="${param.auctionType == 2}">
<c:import url="/reverseAuction.jsp" var="reverse"/>
</c:when>
</c:choose>
</td>
</tr>
有人能让我知道我哪里错了吗?
由于
答案 0 :(得分:0)
如果您的表单没有显示,可能您没有导入spring-mvc表单taglib:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
这是强制性的,否则你最终会得到&lt; form:whatever ...&gt; HTML输出中的标记。
至于基于请求参数导入JSP,通过根据用户输入返回不同的视图,可以更好地在控制器中处理,因为这实际上是一个控制器任务而不是视图。
答案 1 :(得分:0)
您在页面中使用了表达式语言${}
。检查是否包含标记lib
<%@ page isELIgnored ="true|false" %>
。 True表示忽略EL,false表示不忽略EL标记。所以放false
当您使用chose
代码和when
作为其子标记时,这些代码必须是otherwise
代码。
<choose>
<when condition>Page_1.jsp
</when>
<when condition_2>Page_other.jsp
</when>
<otherwise>Page_2.jsp
</otherwise>
</chose>