检查按下了哪个提交按钮

时间:2014-01-03 04:41:24

标签: html mysql jsp

<input id="submit1" name="submit1" type="submit" value="Submit"/>
<input id="submit2"name="submit2" type="submit" value="Submit2">

在servlet中

String dot=request.getParameter("submit1");
String dot1=request.getParameter("submit2");
System.out.println("1:"+dot+dot1);
if(dot1.equals("Submit2")){
statement.setTime(17, dateDB12);
}
else if(dot.equals("Submit")){
 statement.setTime(17, dateDB1); //dataDB1=1st time
}

第二个提交按钮发送数据,而第一个提交按钮不会抛出错误。

我在这一行得到错误

if(dot1.equals("Submit2")){

错误

java.lang.NullPointerException
    org.apache.jsp.useradd_jsp._jspService(useradd_jsp.java:131)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

同样,如果我以相反的方式改变条件

if(dot.equals("Submit")){
    statement.setTime(17, dateDB12);
    }
    else if(dot1.equals("Submit2")){
     statement.setTime(17, dateDB1); //dataDB1=1st time
    }

第一个提交发送数据而第二个提交发送错误了吗?

4 个答案:

答案 0 :(得分:1)

您可以使用Javascript来处理此问题。在提交表单时创建隐藏的输入标记并设置此标记的值。然后从隐藏的输入中获取值。

<input id="submit1" name="submit1" type="button" onclick="onSubmit(this);" value="Submit"/>
<input id="submit2"name="submit2" type="button" onclick="onSubmit(this);" value="Submit2">
<input id="mySubmit" name="submit" value="" type="hidden" />
<script>
function onSubmit(element){
    var value = element.value;
    $('#mySubmit').val(value);
    $('#formId').submit();
}
</script>

然后在java代码中,您可以从隐藏的输入标记中获取值。

String dot=request.getParameter("submit");
System.out.println("1:"+dot);
if(dot.equals("Submit2")){
statement.setTime(17, dateDB12);
}
else if(dot.equals("Submit")){
statement.setTime(17, dateDB1); //dataDB1=1st time
}

希望得到这个帮助。

答案 1 :(得分:1)

您只需在提交按钮中添加相同的名称即可。像这样......

<input id="submit1" name="submit" type="submit" value="Submit"/>
<input id="submit2"name="submit" type="submit" value="Submit2">

在您的Servlet中,只需获得一个“提交”

String dot=request.getParameter("submit");
if( dot.equals("Submit") ){
}

答案 2 :(得分:1)

String dot=request.getParameter("submit1");
String dot1=request.getParameter("submit2");

System.out.println("1:"+dot+dot1);

if(dot1.equals("Submit2") && dot1 != null){
System.out.println(dot1 +"..I'm submit2");  //to error catch

statement.setTime(17, dateDB12);
}
else if(dot.equals("Submit") && dot != null){
 System.out.println(dot +"..I'm submit1");  //to error catch

 statement.setTime(17, dateDB1); //dataDB1=1st time
}
else{
   System.out.println("Something wrong");
 }

你应该使用System.out.println来捕获程序是否达到if或者是否条件..我在if中编辑代码,否则如果..请测试它

答案 3 :(得分:0)

在一个时间实例中,用户可以通过提交任何一个按钮来访问此servlet,因此只有一个参数(DotDot1)在错误原因的时间拥有该值。

试试这个

if(dot!=null){
    statement.setTime(17, dateDB12);
    }
    else if(dot1!=null){
     statement.setTime(17, dateDB1); //dataDB1=1st time
    }