Reputation: 1753
<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
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
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
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
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