<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
}
第一个提交发送数据而第二个提交发送错误了吗?
答案 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,因此只有一个参数(Dot
或Dot1
)在错误原因的时间拥有该值。
试试这个
if(dot!=null){
statement.setTime(17, dateDB12);
}
else if(dot1!=null){
statement.setTime(17, dateDB1); //dataDB1=1st time
}