【问题标题】:jsp & rich:dataTables logout when using imagesjsp & rich:dataTables 使用图片时注销
【发布时间】:2012-09-01 07:30:32
【问题描述】:

我遇到了一个关于 rich:dataTable: 的奇怪问题:

我的主页项目有一些需要身份验证才能访问的目录。 它通过基于表单的登录来完成。工作正常,符合预期。

在一页上是一个rich:dataTable。即使在这里一切正常。 但是当我尝试转到另一个页面(在同一目录中)时,我必须再次登录 我使用 h:graphicImage 标记的表:

<rich:dataTable  id="stdlist" rowClasses="tbleven,tblodd" value="#{sbasSS.SMStatuslist}" var="loc" 
  columnClasses="centertd, centertd"
  headerClass="tblheader" reRender="true">
    <rich:column>
        <f:facet name="header" >
            <h:outputText value="mobilnummer"/>
        </f:facet>    
        <h:outputText value="#{loc.destination}"/> 
    </rich:column>
    <rich:column>
        <f:facet name="header" >
            <h:outputText value="lev. status"/>
        </f:facet>    
        <h:graphicImage value="/Teacher/flags/#{loc.status}.gif" />
    </rich:column>  
</rich:dataTable>

图像按应有的方式显示。没有失败的路径左右。但我被淘汰了,会话无效。

如果我改变了

<h:graphicImage value="/Teacher/flags/#{loc.status}.gif" />

进入

<h:outputText value="#{loc.status}"/>

显示预期的文本。导航工作。我不必再次登录。

知道这可能是什么吗?

最好的问候 拉尔夫

【问题讨论】:

    标签: jsp jsf richfaces


    【解决方案1】:

    事实上,HTML 文档中的所有 URL 引用(如图像、脚本、CSS 文件等)都是由全新且不同的 HTTP 请求单独请求的。这些症状表明您在 web 应用程序中过度验证了 Filter,它没有正常工作,并且由于某种原因,一旦请求图像,整个会话就会失效。

    根据目前提供的信息,这就是所有可以告诉/猜测的内容。您的下一步将是调试该过滤器并投入更多时间来了解 HTML、HTTP 和网络浏览器的一般工作方式。这个问题至少与 RichFaces 数据表无关。如果页面中只有一个带有硬编码 #{loc.status} 值的 &lt;h:graphicImage&gt;,那么您肯定会遇到完全相同的问题。

    【讨论】:

    • 这让我很困惑:如果我使用像 &lt;h:graphicImage value="../include/flags/flag_d.gif" /&gt; 这样的硬编码 Imaga,它可以正常工作。并且应用程序中没有定义过滤器(org.ajax4jsf.filter 除外)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2016-06-24
    相关资源
    最近更新 更多