【问题标题】:Two forms but only 1 jsp file两种形式但只有1个jsp文件
【发布时间】:2012-09-11 08:58:47
【问题描述】:

这就是我正在做的事情。我有一个 .jsp 文件。但是,我有两个表单,其中包含多个输入。

检测一个表单已提交但另一个表单未提交的最佳方法是什么?这是一个例子:我有这个表格:

<form  name = "login" action="index.jsp" method="get">
Username: <input id="username" name="username" type="text"/><br/>
Password: <input id="password" name="password" type="password"/>
<input type="submit" Value="Login" ></input>
</form>

如果该按钮被点击,我想运行这段代码:

String username = request.getParameter("username");
String password = request.getParameter("password");
if((username!= null && !username.trim().equals("")) && (password != null && !username.trim().equals(""))) {
    DBentry DBentry=new DBentry();
    boolean flag = DBentry.isTaken(username);
    if(flag) {%><script type="text/javascript">alert("Login Successful!");</script><%
        }
    else { %><script type="text/javascript">alert("Unrecognized username.  Please register!");</script><% }
    }
else { %><script type="text/javascript">alert("Please enter both a username and password!");</script><% }

再往下,我会得到完全一样的东西,但提交不同的表格。 谢谢!

【问题讨论】:

    标签: java html jsp forms


    【解决方案1】:
    <input type='hidden' name='formNumber' value='form2' />
    

    【讨论】:

      【解决方案2】:

      为提交按钮指定一个唯一的名称。它成为请求参数名称。这样您就可以检查HttpServletRequest#getParameter() 是否不返回null

      例如

      <input type="submit" name="login" Value="Login" />
      
      ...
      
      <input type="submit" name="somethingelse" Value="Something else" />
      

      if (request.getParameter("login") != null) {
          // Login form submitted.
      }
      else if (request.getParameter("somethingelse") != null) {
          // Something else submitted.
      }
      

      与具体问题无关,业务逻辑doesn't 属于JSP,但属于Servlet。我也将开始努力。这使您能够将表单提交到不同的 URL。此外,您应该为此使用 POST 方法,而不是 GET 方法。

      【讨论】:

      • 感谢您的回复。这看起来与我最相关 - 我稍后会试一试!再次感谢。
      • 像魅力一样工作 - 应该能够使用它。根据您在 JSP 中的业务日志上的说明,这是有道理的,但是第一个程序是一个示例程序,供我们的讲师使用,他就是这样布置的,所以我现在就开始使用它。跨度>
      • 不客气。祝你学习 JSP/Servlet 好运。希望没有向您提供严重过时的学习材料,并且您会被引导到正确的方向。
      【解决方案3】:

      您在其中一个表单的表单字段变量列表中添加了一个具有某些值的隐藏变量。在 JSP 中,检查该值是否已填充。如果填充表示,则提交第一个表单,否则提交第二个表单。例如:

      <form  name = "login" action="index.jsp" method="get">
      Username: <input id="username" name="username" type="text"/><br/>
      Password: <input id="password" name="password" type="password"/>
      <input type= "hidden" name="myform" value="form1"/>
      <input type="submit" Value="Login" ></input>
      </form>
      

      【讨论】:

        【解决方案4】:

        从另一个问题复制过来,希望对你有帮助

        例如,您可以简单地通过 javascript 调用您的 servlet 方法

        在提交按钮中我只使用名称属性

           <li class="button-row">
          <input type="submit" value="ADD" id="add"class="btn-submit img-  swap" name="add" />
            <input type="submit" value="Delete"  class="btn-delete img-swap" name="delete" />
           <input type="submit" value="Update" class="btn-update img-swap" name="update" />
         <input type="submit" value="Search" class="btn-search img-swap" name="search" />
         </li>
        

        您可以通过提交标签名称在javascript中调用具有多种方法的单个servlet,如下所示

           <script type="text/javascript">
        var frm = document.forms[0];
        
        if (request.getParameter("add") != null) {
        
            var pageName = "/DepartmentServlet?method=add"
            frm.action = pageName;
            frm.submit();
        
         }
         else if (request.getParameter("delete") != null) {
        //likewise you can call your other method from DepartmentServlet
        //Even you can pass parameter by onClick event
        // Invoke action 2.
          }
         else if (request.getParameter("update") != null) {
        // Invoke action 3.  }
        
         </script>
        

        【讨论】:

        • 我现在正处于你学习 jsp 的阶段,早上 6 点起床只是因为对此感到非常沮丧,我想完成我给自己的任务以继续我的生活!
        • 你为什么要给我一个负面评价:(!
        【解决方案5】:

        您可以在操作上传递不同的参数,例如 action="index.jsp?form=userlogin" 和其他参数

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-25
          • 1970-01-01
          • 2017-07-26
          • 2021-09-20
          • 2014-05-09
          • 1970-01-01
          相关资源
          最近更新 更多