当前位置: 首页 > 知识库问答 >
问题:

ioException:Struts 2.5.26和Tiles 3.0.0中的流关闭

吴升
2023-03-14
    finally {
          _jspxFactory.releasePageContext(_jspx_page_context);
        }

但是baselayout.jsp只有html和tiles代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ taglib uri="/WEB-INF/struts-tags.tld" prefix="s"%>
    <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
    <s:property value="getText('label.version')"/>
    
    <html>
    <HEAD>
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM Software Development Platform">
    
    <TITLE><tiles:getAsString name="title" ignore="true"/></TITLE>
    
        <link href="<s:url value='/css/styles.css'/>" type=text/css rel=styleSheet>
        <link href="<s:url value='/css/sor_styles.css'/>" type=text/css rel=styleSheet>
        <link href="<s:url value='/css/ucd_styles.css'/>" type=text/css rel=styleSheet>
        
        <script language="JavaScript" src="<s:url value='/js/common/app.js'/>"></script>
        <script language="JavaScript" src="<s:url value='/js/common/validations.js'/>"></script>
    </HEAD>
    
    <BODY>
    <TABLE  border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">
        <TBODY>
            <TR>
                <TD height="66" colspan="2"><tiles:insertAttribute name="header" /><s:debug value="PAGE TESTING"/></TD>
            </TR>
            <TR>
    
                <TD width="100%" height="100%" valign="top">
                    <div id="mainBody">
                        <tiles:insertAttribute name="tabs" />
                        <tiles:insertAttribute name="here" />
                        <tiles:insertAttribute name="error_response" /> 
                        <tiles:insertAttribute name="body" />
                    </div>
                </TD>
            </TR>
        <TR>
        <TD colspan="2"><tiles:insertAttribute name="footer" /></TD>
        </TR>
        </TBODY>
    </TABLE>
    </BODY>
    </html>

你知道为什么我会看到这个例外吗?我在那里搜索了它,但示例显示,当他们得到这个异常时,大多数页面都在使用流编写器,但在我的情况下没有。

共有1个答案

东门涵育
2023-03-14

摘要:

在所提供的示例中,page指令位于远离JSP文件开头的位置,这可能会触发响应的提交,从而导致在尝试设置响应的content-type标头时失败。

page指令与contenttypepageencoding属性设置为JSP文件的第一行。

<%@ page contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/WEB-INF/struts-tags.tld" prefix="s"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<s:property value="getText('label.version')"/>

<!-- rest of the page -->
...

根据JSP规范2.2,JSP.1.10.1节,页面指令(重点是我的):

一个翻译单元(JSP源文件和通过include指令包含的任何文件)可以包含page指令的多个实例,所有属性都将应用于完整的翻译单元(即page指令与位置无关)。这种位置独立性的一个例外是在确定页面字符编码时使用PageEncodingContentType属性;为此,它们应该出现在页面的开头(参见JSP.4.1节)。

Jakarta Server Pages3.0规范中也有相同的说明。

 类似资料:
  • 当我执行这段代码时,它会在流管道中打开许多文件: 我得到一个例外: 问题是流。当完成对流的遍历时,count不关闭流。但我不明白为什么不应该,因为这是一个终端操作。对于其他终端操作,如和,也是如此<另一方面,代码>平面图关闭它所包含的流。 文档告诉我在必要时使用try with resources语句来关闭流。在我的例子中,我可以用以下内容替换计数行: 但这是嘈杂和丑陋的,在某些情况下,对于大型复

  • 我正在使用ProcessBuilder启动一个外部进程,但我需要能够杀死它。现在,我没有问题杀死进程,但由于某种原因,错误流没有关闭,所以读取流的线程永远不会完成。这让我无法关闭我的程序。 从这里开始线程读取输入和错误流。 这是我用来停止该进程的代码。 我从来没有得到“error end”,调试程序显示线程只是位于“readline()”。 等待进程的代码在它自己的线程中运行(与终止进程的代码分开

  • 我正在阅读“Unix环境中的高级编程”,在dection 5.5,P150中,它说: 1、关闭文件之前,将刷新所有缓冲输出数据。任何可能被缓冲的输入数据都会被显示 2。当进程正常终止时,所有带有未写入缓冲数据的标准I/O流都将被刷新。。。 在1中,这是否意味着当我使用fclose()关闭流时,缓冲的输入将被释放,以便某些数据不会写入文件中。如果没有,“文件已关闭”是什么意思? 在2中,“未写入的缓

  • 问题内容: 我在try / catch块中有以下代码 我的问题是,当我必须在finally块中关闭这些流时,是否必须关闭所有3个流,或者仅关闭 befferedreader 会关闭所有其他流? 问题答案: 按照惯例,包装流(用于包装现有流)在关闭时会关闭基础流,因此仅在示例中必须关闭。而且,关闭已经关闭的流通常是无害的,因此关闭所有3个流都不会受到伤害。

  • 问题内容: 什么是关闭Java中嵌套流的最佳,最全面的方法?例如,考虑设置: 我知道需要对关闭操作进行保险(可能通过使用finally子句)。我想知道的是,是否有必要明确确保嵌套流已关闭,还是足以确保关闭外部流(oos)? 我注意到的一件事,至少在处理此特定示例时,是内部流似乎只抛出FileNotFoundExceptions。这似乎暗示着从技术上讲,如果它们失败了,就不必担心将其关闭。 这是一位

  • 如果我们在后台启动KafkaStream应用程序(比如Linux),有没有一种方法可以从外部向应用程序发出信号,从而启动优雅的关机?