Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 答复已经提交_Java_Jsp_Struts_Illegalstateexception - Fatal编程技术网

Java 答复已经提交

Java 答复已经提交,java,jsp,struts,illegalstateexception,Java,Jsp,Struts,Illegalstateexception,我有一个取消按钮,用来刷新值。现在我已经将它们转换为刷新或重新加载页面,并移动到只读页面。所以更改了cancel按钮来调用这样的函数 function chkArea(){ var url='<c:out value="${model.contextPath}"/>/abcHandler.do?operation=view; document.forms[0].action=url; document.forms[0].submit(

我有一个取消按钮,用来刷新值。现在我已经将它们转换为刷新或重新加载页面,并移动到只读页面。所以更改了cancel按钮来调用这样的函数

function chkArea(){

        var url='<c:out value="${model.contextPath}"/>/abcHandler.do?operation=view;
        document.forms[0].action=url;
        document.forms[0].submit();
    }
控制台显示以下错误:

javax.servlet.ServletException: The "url" attribute illegally evaluated to "null" or "" in &lt;import&gt;
    at com.evermind.server.http.EvermindPageContext.handlePageThrowable(EvermindPageContext.java:899)
    at com.evermind.server.http.EvermindPageContext.handlePageException(EvermindPageContext.java:816)

我在JS或JSP中没有看到任何错误。怎么了?有什么建议吗?

当您从jsp对输出流进行写入,然后再次对其执行某些操作时,会出现此错误。这会导致非法状态异常。当响应已提交时,不应执行任何操作。通过提交,我的意思是将响应发送回客户端。一种常见的情况是

 OutputStream stream = response.getOutPutStream();
  stream.write("something here");
  stream.flush();
 RequestDispatcher rd = request.getRequestDispatcher("someFile.jsp");
   rd.forward(request, response); // You can't do this because stream is already written

当您从jsp对输出流进行写入,然后再次对其执行某些操作时,会出现此错误。这会导致非法状态异常。当响应已提交时,不应执行任何操作。通过提交,我的意思是将响应发送回客户端。一种常见的情况是

 OutputStream stream = response.getOutPutStream();
  stream.write("something here");
  stream.flush();
 RequestDispatcher rd = request.getRequestDispatcher("someFile.jsp");
   rd.forward(request, response); // You can't do this because stream is already written

首先,问题不在示例1中的JSP或JS中。问题在于servlet在获得“../abcHandler.do?operation=view;”请求时做了什么

问题是,您正在尝试执行需要更改HTTP响应头的操作。。。在发送头之后。这就是异常/消息所说的。(一旦servlet框架开始写入响应,响应即被“提交”。这通常在有什么东西打开servlet输出流/编写器…准备写入响应体时触发。)

为了给您提供正确的诊断,以及关于如何解决这里的特定问题的合理建议,我们需要查看处理上述请求的Servlet/JSP代码

“url非法计算为空”消息有点难以放置。它可能发生在非法状态异常之前。。。或者在它之后

(一种可能是您的JSP代码试图使用某个“url”属性执行某些操作,该属性意外地为
null
,从而触发异常。然后容器的错误处理程序尝试设置不同的响应状态……但由于响应已提交,因此该操作失败。)

总之,如果没有更多的信息,就不可能找出根本问题是什么;i、 e.守则



1-实际上,您缺少
url
初始化的结束引号。。。但是我假设这只是一个转录错误。

首先,问题不在示例1中的JSP或JS中。问题在于servlet在获得“../abcHandler.do?operation=view;”请求时做了什么

问题是,您正在尝试执行需要更改HTTP响应头的操作。。。在发送头之后。这就是异常/消息所说的。(一旦servlet框架开始编写响应,响应就会被“提交”。通常是在某个东西打开servlet输出流/写入程序时触发的,以准备编写响应主体。)

为了给您提供正确的诊断,以及关于如何解决这里的特定问题的合理建议,我们需要查看处理上述请求的Servlet/JSP代码

“url非法计算为空”消息有点难以放置。它可能发生在非法状态异常之前。。。或者在它之后

(一种可能是您的JSP代码试图使用某个“url”属性执行某些操作,该属性意外地为
null
,从而触发异常。然后容器的错误处理程序尝试设置不同的响应状态……但由于响应已提交,因此该操作失败。)

总之,如果没有更多的信息,就不可能找出根本问题是什么;i、 e.守则



1-实际上,您缺少
url
初始化的结束引号。。。但我认为这只是一个转录错误。

ya所以我尝试了autoflush=“true”。即使这样,也会产生相同的错误。请确保jspsI中没有类似于上述代码的代码。我的actionclass只会转发到一个JSP.com,并且
stream.flush()
会导致提交响应。所以我觉得你的
autoflush=true
不会有帮助。这会增加问题。是的,所以我尝试了autoflush=“true”。即使这样,也会产生相同的错误。请确保jspsI中没有类似于上述代码的代码。我的actionclass只会转发到一个JSP.com,并且
stream.flush()
会导致提交响应。所以我觉得你的
autoflush=true
不会有帮助。这会增加问题。对于谷歌用户:如果您使用的是
externalContext.redirect()
,请尝试使用以下条件:
如果(!externalContext.isResponseCommitted()){}
(这就是我得到此异常的原因)。对于谷歌用户:如果您使用的是
externalContext.redirect()
,尝试将此条件置于其周围:
如果(!externalContext.isResponseCommitted()){}
(这就是我得到此异常的原因。)