【问题标题】:redirect to jsp page using jsp code only仅使用 jsp 代码重定向到 jsp 页面
【发布时间】:2017-08-19 11:14:39
【问题描述】:

我正在尝试仅使用 Jsp 代码重定向到另一个 jsp 页面。

index.jsp

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>Testing</title>
         <script>
         function vali()
         {
            var name= document.for.name.value;
             if(name!="")
             {
                 window.location.("page2.jsp");
             }
             else{
                 alert("enter name");
             }
         }
         </script>
     </head>
     <body>
         <form name="for">
         <table>
             <tr><td>Enter name:</td>
                 <td><input type="text" name="name" value=""></td>
             </tr>
             <tr><td>
                 <input type="button" value="click" onclick="vali()">
                 </td>
             </tr>
         </table>
             </form>
     </body>
 </html>

page2.jsp

 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE html>
 <html>
     <head>   
     </head>
     <body>
         <h1>Page2 welcomes u</h1>
     </body>
</html>

这段代码工作得很好,但我试图只通过jsp而不使用javascript来完成。

我试过了

    <%
         String name = request.getParameter("name");
          if(name!=null){
               response.sendRedirect("page2.jsp");
         }

    %>

但它不起作用,它会在页面加载后立即重定向页面。 请帮忙写一些代码

【问题讨论】:

    标签: javascript java html jsp jsp-tags


    【解决方案1】:

    使用“form name='for' action='page2.jsp'”和按钮提交重定向页面

    【讨论】:

      【解决方案2】:

      你只需要放入 jquery/javascript

      window.location.href = "page2.jsp" 或者 在表单动作参数值需要设置

      并更改按钮类型提交。

      或者给 id 和 document.getelementbyid(formid).submit();

      【讨论】:

        【解决方案3】:

        在您的 index.jsp 中添加此代码:

             <%
                if( request.getMethod().equals("POST")) {
                    String name = request.getParameter("name");
                    if( name != null && name.length() != 0 )
                        response.sendRedirect("page2.jsp");
                    else    
            %>
                        <script>
                            alert("enter name please");
                        </script>
            <%
                }
        
            %>
        

        并且也像这样改变你的表单

        <form method="post">
             <table>
                 <tr><td>Enter name:</td>
                     <td><input type="text" name="name" value=""></td>
                 </tr>
                 <tr><td>
                     <input type="submit" value="click">
                     </td>
                 </tr>
             </table>
                 </form>
        

        【讨论】:

        • 谢谢,我想你已经理解了我的问题,但是你的代码不起作用(我在其他部分添加了'{')
        • @BlindCoder 我检查了它工作的代码。请按原样使用。
        【解决方案4】:

        替换下面的代码:

          <%@page contentType="text/html" pageEncoding="UTF-8"%>
        <!DOCTYPE html>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Testing</title>
        <script>
            function vali() {
                var name = document.for.name.value;
                if (name != "") {
                    return true;
                } else {
                    alert("enter name");
                    return false
                }
            }
        </script>
        </head>
        <body>
            <form name="for" action="page2.jsp" onsubmit="return vali();">
                <table>
                    <tr>
                        <td>Enter name:</td>
                        <td><input type="text" name="name" value=""></td>
                    </tr>
                    <tr>
                        <td><input type="submit" value="click"></td>
                    </tr>
                </table>
            </form>
        </body>
        </html>
        

        这里我在表单提交上调用了验证函数,它将根据验证返回真或假。仅当函数返回真时才提交表单。这里的 Javascript 仅用于验证。

        【讨论】:

        • 谢谢你,这对我帮助很大,但我想在不使用 javaScript 的情况下做到这一点
        • 如何在没有 javascript 的情况下验证数据?这里 javascript 只是验证数据。
        【解决方案5】:

        使用

        <%=request.getRequestDispatcher("<path to another page>").forward(request, response)%>
        

        关于您要转发到另一个页面的操作

        尝试后,我在不使用 scriptlets 的情况下让代码工作

                <form name="for">
                    <table>
                        <tr><td>Enter name:</td>
                            <td><input type="text" name="name" value=""></td>
                        </tr>
                        <tr>
                            <td>
                                <input type="button" value="click" onclick="
                                        window.location = 'page2.jsp'">
                            </td>
                        </tr>
                    </table>
                </form>
        

        【讨论】:

          【解决方案6】:

          试试这个:

          <%
               String name = request.getParameter("name");
                if(!name.equals("") || name.length() != 0){
                     response.sendRedirect("page2.jsp");
               }
          
          %>
          

          【讨论】:

            【解决方案7】:

            你只需要在表单标签中使用'action'。很简单。

            <form action="page2.jsp" method="post">
                <input type="submit" value="Click Here"/>
            </form>
            

            输入类型应为“提交”,但您可以根据需要更改值。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-03-15
              • 1970-01-01
              • 1970-01-01
              • 2011-06-25
              • 2015-05-22
              • 2013-05-27
              • 1970-01-01
              相关资源
              最近更新 更多