1

アプリケーションで Tiles 2.2.2 を使用しています (Struts 2.2.3)。リクエストの属性に応じて画面構成を変更するために、式を使用したいと考えています。基本的に、リクエストに「x-requested-with」という名前のヘッダーがあり、値が「XMLHttpRequest」であるかどうかに応じて、画面の拡張を変更したいと思います。それは可能ですか?属性を使用して簡単な例を実行しようとしました:

<put-attribute name="test"   expression="OGNL:requestScope"  cascade="true"/>

OGNL:%{#request.headers.referer}、OGNL:#request.headers.referer、OGNL:requestScope.headers.referer などのさまざまな式を試しましたが、常に null が返されます。OGNL 式が Tiles でどのように機能するかについてのドキュメントを見つけられなかったので、Struts でどのように行うかに基づいて作業しています。しかし、うまくいかないようです。

何か案は?

4

1 に答える 1

1

タイルをどのように初期化していますか?StrutsTilesListenerを使用している場合、tiles.xmlのOGNL式は評価されません。

Struts2アプリでは、web.xmlでorg.apache.tiles.extras.complete.CompleteAutoloadTilesListenerを使用しており、OGNL評価が機能しています。

<listener>
      <listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>

私の場合、「content」というプロパティを持つカスタムTilesResultがあります。

<put-attribute name="content" expression="OGNL:content" />
于 2012-11-02T13:16:21.207 に答える