我尝试使用param
将forward
变量从start.jsp传递给a.jsp。然后a.jsp处理参数,并通过form action
返回到start.jsp。因此,这就像一个运行循环。
但是a.jsp似乎没有重新运行处理scriptlet。
start.jsp
<c:choose>
<c:when test="${id eq 'id'}">
<c:if test="${pw eq 'pwd'}">
<jsp:forward page="welcome.jsp"/>
</c:if>
<jsp:forward page="a.jsp">
<jsp:param name="fail" value="password"/>
</jsp:forward>
</c:when>
<c:otherwise>
<jsp:forward page="a.jsp">
<jsp:param name="fail" value="id"/>
</jsp:forward>
</c:otherwise>
</c:choose>
a.jsp
<body>
<%
String failcode = request.getParameter("fail");
if(failcode == null){
out.println("<script>alert('get started');</script>");
}
if(failcode == "password"){
out.println("<script>alert('password incorrect!');</script>");
}
if(failcode == "id"){
out.println("<script>alert('id failure!');</script>");
}
%>
<form action="start.jsp" method="post">
.....
</form>
<body>
我认为a.jsp应该运行<script>
,因为start.jsp给了他们不同的失败代码。我的代码出了什么问题?谢谢您耐心阅读。