gpt4 book ai didi

java - 无法 within sitemesh

转载 作者:行者123 更新时间:2023-12-01 15:44:46 24 4
gpt4 key购买 nike

我正在使用 java 和 sitemesh。

主体装饰器调用 Profile.jsp 文件,该文件包含如下 jsp

<jsp:include page="/serveComments.html" flush="true">
<jsp:param value="78" name="passId"/>
</jsp:include>

但是,当我添加此包含时,profile.jsp 消失了,我只留下了serveComments.html(当 header 和边框就位时由sitemesh 进行处理。

decorator.xml如下

<decorators defaultdir="/WEB-INF/sitemesh-decorators">
<excludes>
<pattern>/j_spring_security_logout</pattern>
<pattern>/pages/logout-redirect.jsp</pattern>
<pattern>*/getMagazine.html*</pattern>
<pattern>*/serveComments.html*</pattern>

</excludes>

<decorator name="main" page="main.jsp">
<pattern>/*</pattern>
</decorator>

<decorator name="panel" page="panel.jsp"/>
<decorator name="printable" page="printable.jsp"/>
</decorators>

希望我已经说清楚了。

最佳答案

<jsp:include>与模板框架一起使用是有问题的。至少在 tomcat 中,jsp:include 标记的实现方式是将输出直接写入输出流,而不是写入 pagecontext 标记缓冲区。我不确定 sitemesh 在幕后是如何工作的,但是 Tiles 作为一个“标准”标签库工作,它将输出写入 pagecontext 标签缓冲区堆栈,然后在渲染整个标签层次结构后将其输出到 servlet 输出流。这使得 jsp:include 在 Tiles 上下文中实际上无法使用。

由于 jsp:include 不会写入标记缓冲区,而是直接写入输出流,因此内容将不按顺序发送,或者根本不发送,具体取决于 sitemesh 标记的工作方式。渲染时,sitemesh 标记可能会将输出流重定向到某个空流。

关于java - 无法 <jsp :include> within sitemesh <decorator:body/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7282776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com