jsp:include仅返回WebLogic12c中的文本

jsp:include仅返回WebLogic12c中的文本,jsp,servlets,struts2,weblogic12c,tiles-3,Jsp,Servlets,Struts2,Weblogic12c,Tiles 3,我在jsp中遇到了一个非常奇怪的问题:WebLogic12c中的include标记,不知道如何找到根本原因或修复它。请帮忙 我正在我的项目中使用Struts 2.5.10.1和Tiles 3.0.7。JSP页面非常简单。它基本上使用tiles模板,并使用另一个动态包含的JSP页面为中心框架提供内容,如下所示: ... <tiles:insertDefinition name="defaultLayout"> <tiles:putAttribute name="con

我在jsp中遇到了一个非常奇怪的问题:WebLogic12c中的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标记都消失了。甚至我在结果页面上看到的不是输入文本字段,而是值

同样的代码在JBoss6.4和Tomcat7和8上也可以正常工作。因此,这似乎是一些WebLogic特定的问题

提前谢谢你的帮助

其他详情:

  • JDK-1.7
  • Servlet版本-2.4
  • 操作系统-Windows10,x64
  • 生成的HTML如下所示:

    ...
       <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>  
    ...
    
    连接设置SLDAP连接设置ST:端口:389使用SSL:服务器上受信任的密钥库文件位置:用户DN:密码:确认密码:

根本原因

正如我在下面的评论中所提到的,我在包含的页面中找到了根本原因-页面编码/字符集为“UTF-8”


如果我将字符集/页面编码更改为“utf-8”、“utf8”或完全错误的内容,例如“xxxx”或将其删除,则一切都会正常工作


非常奇怪的问题。至少现在我有了解决办法。

如果我改用它,一切都会很好。但不幸的是,由于一些特殊的原因,我不能使用静态包含。另一件奇怪的事情。在某些JSP页面上,类似于此请求的代码。isUserInRole(“admin”)工作正常,而在其他页面上则失败。经过一些调查,我发现当WebLogic将JSP页面的一部分移动到帮助器类JspFragmentHelper时,就会出现这个问题。在这种情况下,它将请求对象作为ServletRequest提供,这当然会导致类转换异常并导致JSP编译失败。我找到的唯一解决方案是向HttpServletRequest添加显式强制转换来解决这个问题。同样,在Tomcat和JBoss中,一切正常。这只是在这个页面上,还是应用程序中的任何地方都没有jsp:include工作?这个问题在所有页面上都是可复制的。我刚刚找到了这个问题的根本原因——出于某种原因,只有当包含的页面的字符集或页面编码设置为“UTF-8”时,才会发生这种情况。如果我将charser/pageEncoding更改为“utf-8”、“utf8”或“xxxx”之类完全错误的内容,问题就消失了,我能够正确地看到包含所有HTML标记的页面。仍然不清楚为什么会发生这种情况,但至少我有一个解决办法。