首页 > 解决方案 > 如何重新运行 scriptlet?

问题描述

我尝试将param变量从 start.jsp 传递给 a.jsp,使用forward. 然后 a.jsp 处理参数并返回 start.jsp by form action。所以它就像一个运行循环。但是 a.jsp 似乎没有重新运行处理 scriptlet。

启动.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>

一个.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 运行给他们不同的失败代码。我的代码出了什么问题?感谢您的耐心阅读本文。

标签: jsploginscriptlet

解决方案


推荐阅读