我创建一个Web界面是用户可以在一个公式中键入som的东西: 但是,当我按下确定按钮时,我收到此错误代码:
java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed
我的代码:
<%!
String validate (String input) {
String error = "";
int receptnr = 0;
String error1 = "";
int varenr = 0;
try {
receptnr = Integer.parseInt(input);
varenr= Integer.parseInt(input);
} catch (Exception e) {
error = error +"Receptnummeret skal være et tal";
error1 = error1 +"Varenummer skal være et tal";
}
if (receptnr > 99999999||receptnr<1||varenr > 99999999||varenr<1)
error = error + " Receptnummeret skal være mellem 1 og 99999999 år";
error1 = error1 + " Varenummeret skal være mellem 1 og 99999999 år";
return error;
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<title>Indtastningsformular</title>
<body>
<%
if (request.getMethod().equals("POST")) { // brugeren har tastet på submit
String receptnr = request.getParameter("receptnr");
String error = validate(receptnr);
String varenr = request.getParameter("varenr");
String error1 = validate(varenr);
if (error.equals(""))
{
System.out.print(receptnr);
response.sendRedirect("VisOKData.jsp?receptnr_resultat="+receptnr);
}
else
response.sendRedirect("VisError.jsp?error_resultat="+error);
/*
if(error1.equals("")){
System.out.print(varenr);
response.sendRedirect("VisOKData.jsp?varenr_resultat="+varenr);
}
else
response.sendRedirect("VisError.jsp?error_resultat="+error);
*/
}
%>
<form method="POST" action="InputForm.jsp">
Receptnr:
<input type="text" name="receptnr" value="Indtast dit receptnr her">
<br />
Varenr:
<input type="text" name="varenr" value="Indtast dit varenr her">
<br />
<input type="submit" value="OK">
</form>
我想要做的是给公式一些条件,然后将页面重定向到错误信息或确定消息
答案 0 :(得分:3)
这很简单,因为你将页面重定向两次。
如果您的第一个(if)条件为true或false,则页面已经重定向到其他页面。
之后它将再次重定向。
因此解决方案是将两个条件转换为一个条件。 那样: -
if (error.equals(""))
{
System.out.print(receptnr);
if(error1.equals(""))
{
System.out.print(varenr);
response.sendRedirect("VisOKData.jsp?varenr_resultat="+varenr);
}
else
{
response.sendRedirect("VisError.jsp?error_resultat="+error);
}
}
else
{
response.sendRedirect("VisError.jsp?error_resultat="+error);
}