2

rich:dataTable でおかしな問題が発生しました:

私のホームページ プロジェクトには、アクセスするために認証が必要なディレクトリがいくつかあります。フォームベースのログインによって行われます。期待どおり、正常に動作します。

1 つのページには、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}"/>

期待されるテキストが表示されます。ナビゲーションが機能します。再度ログインする必要はありません。

これは何だろう?

よろしくラルフ

4

1 に答える 1

0

実際には、画像、スクリプト、CSS ファイルなどの HTML ドキュメント内のすべての URL 参照は、まったく新しい別個の HTTP リクエストによってそれぞれ個別にリクエストされます。Filterこの症状は、webapp で過度に熱心な認証を行っていることを示しています。この認証は適切に機能しておらず、画像が要求されると、何らかの理由でセッション全体が無効になります。

これまでに提供された情報に基づいて言える/推測できるのはそれだけです。次のステップは、そのフィルターをデバッグし、HTML、HTTP、および Web ブラウザーが一般的にどのように機能するかを学習することにもう少し時間を費やすことです。この問題は、少なくとも RichFaces データテーブルとは関係ありません。<h:graphicImage>ページにハードコードされ#{loc.status}た値しかない場合、まったく同じ問題が発生することは間違いありません。

于 2012-09-07T15:23:13.680 に答える