如何检查a按钮是否已按下(在jsp文件中)

ifmq2ha2  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(130)

我正在处理JSP文件(不想使用servlet),我有一个简单的表单,2个标签,2个输入和2个按钮,我想在同一个jsp页面上打印出提交的字符串***,问题是当我尝试新的值时,最后提交的值仍然打印在屏幕上,这就是为什么我想到了一个测试来检查按钮提交是否被点击之前,我们移动到显示,我尝试了以下代码:

<body>
       <form  method='post'>
       <pre>
       <label>Username</label> <input type="text" name="user"  required/>
       <label>Password</label> <input type="password" name="pwd" required />
       <br>
       <input type="submit" value="confirm" name ="submit" /> 
       <input type="reset" value="clear"  /> 
       </pre>
       </form>
       <br>
       // test if the submit button was clicked (check if value of submit is confirm)

        <% String x=request.getParameter("submit")%>
        <% if (x.equals("confirm")){ %>

       <% if (request.getParameter("user")!="" && request.getParameter("pwd")!=""){ %>
       <center>
       <h4> user is : <% out.write(request.getParameter("user")); %> </h4>
       <br> 
       <h4> password is : <% out.write(request.getParameter("pwd")); %> </h4>
       </center>
       <% } else {  %>

        <h4> inputs r empty !! </h4> 

       <% } %>
       <% } %>
       </body>

我在以下行收到错误:

<% if (x.equals("confirm")){ %>

知道为什么吗?

svdrlsy4

svdrlsy41#

首先,停止不必要地打开和关闭JSP标记。这是草率和不可读的。第二,您缺少一个分号。第三,您需要检查参数为空的可能性。当表单没有提交时,参数为空。
这是不好的:

<% String x=request.getParameter("submit")%>
 <% if (x.equals("confirm")){ %>

这样做:

<%
   String x = request.getParameter("submit");
   if(x!=null && x.equals("confirm"))
   {
     ...

你也可以反向比较字符串。如果你在一个为空的变量上使用点运算符,你会得到一个空指针异常。所以你可以在字符串文字上使用点运算符,这样就避免了显式检查空值:

<%
   String x = request.getParameter("submit");
   if("confirm".equals(x))
   {
     ...

同样,一旦你修复了这个问题,你会遇到一个if (request.getParameter("user")!=""的问题。你需要使用.equals(),因为在Java中,对于String ==!=不比较字符串内容,而是比较指针(即内存地址)的等价性。

ekqde3dh

ekqde3dh2#

这个问题似乎不太老。所以我可以放心地为这个问题加上一个答案。
基本上,当您要处理同一页面中提交的表单数据时,可以使用以下代码段:

<%
    String check_submit_form = request.getParameter("submit");
    if((request.getParameter("btnLogon") == null)?false:true){
            for(int i =0;i<=100;i++){
                 out.println("Congrts Bro . you have done a great job .");
            }
    }
    else{
    %>

   <form name="form_logon" method="POST" action ="logonHome.jsp">
     <input type="submit" value="Click for Finger Verification" name="btnLogon">
  </form>
  <%
   }
  %>

代码是不言自明的。如果你点击提交按钮,那么你可以处理表单,否则你会被重定向到表单。希望这对你有帮助。

相关问题