checking which submit button is pressed

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

In the 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
}

the second submit button sends data whereas the first one doesnt throws an error.

I get error on this line

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

the error

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)

Similarly if I change the condition the other way round

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

the first submit sends data and the second doesnt send.whats going wrong?

Upvotes: 0

Views: 529

Answers (4)

lynndragon
lynndragon

Reputation: 370

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");
 }

You should use System.out.println to catch if program reach if or else if condition..I edit your code in if and else if ..please test it

Upvotes: 1

Aks
Aks

Reputation: 1587

You can use Javascript to handle this. Make a hidden input tag and set value of this tag on submission of the form. and then get the value from that hidden input.

<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>

Then in you java code you can fetch value from hidden input tag.

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
}

Hope this help.

Upvotes: 1

Tun Zarni Kyaw
Tun Zarni Kyaw

Reputation: 2119

You can simply give the same name to your submit buttons. Like this ...

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

In your Servlet, simply get only one "submit"

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

Upvotes: 1

Vishal Santharam
Vishal Santharam

Reputation: 2023

At an instance of time user can reach this servlet by submitting any one of the button so only one parameter(either Dot or Dot1) posses the value at a time that's the cause of error.

try this

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

Upvotes: 0

Related Questions