我在 WebLogic12c 中遇到了 jsp:include 标记的一个非常奇怪的问题,并且不知道如何找到根本原因或修复它。请帮忙!!!
我在我的项目中使用 Struts 2.5.10.1 和 Tiles 3.0.7。JSP 页面非常简单。它基本上使用tiles模板并使用另一个动态包含的JSP页面为中央框架提供内容,如下所示:
...
<tiles:insertDefinition name="defaultLayout">
<tiles:putAttribute name="content">
<div id="fragment-connection" class="aetab-content">
<jsp:include page="idas_tab_connect.jsp" />
</div>
</tiles:putAttribute>
</tiles:insertDefinition>
...
问题是 idas_tab_connect.jsp 页面的全部内容仅包含文本,而不是包含在内。所有的 HTML 标记都消失了。即使我在结果页面上看到的不是输入文本字段,也只是值。
相同的代码在 JBoss 6.4 和 Tomcat 7 和 8 上运行良好。所以这似乎是一些特定于 WebLogic 的问题。
提前谢谢你的帮助。
额外细节:
- JDK - 1.7;
- Servlet 版本 - 2.4;
- 操作系统 - Windows 10、x64;
生成的 HTML 如下所示:
<div id="fragment-connection" class="aetab-content"> 连接设置LDAP 连接设置主机:端口:389 使用 SSL:服务器上受信任的密钥库文件位置:用户 DN:密码:确认密码:</div>
根本原因
正如我在下面的评论中提到的那样,我找到了根本原因 - 包含页面中的页面编码/字符集设置为“UTF-8”
<%@page contentType="text/html; charset=UTF-8" %>
如果我将 charset/pageEncoding 更改为“utf-8”、“utf8”或完全错误的东西,例如“xxxx”或删除它,一切都开始对我正常工作。
很奇怪的问题。至少现在我有一个解决方法。