0

HashMap<Long, ClientProperties>起動時にServletContextを設定しているものがあります。

//During application-startup:
//getProperties() returns HashMap<Long, ClientProperties>
context.setAttribute("clientProps", clientManager.getProperties());    

ClientPropertiesは、jspでアクセスする必要がある5つの属性を持つPOJOです。基本的に、正しいPOJOを(HashMap-keyで)取得し、jspでそのプロパティにアクセスする必要があります。

より具体的な(たとえば目的のために)、POJO属性の1つは次のとおりですclientLogo 。私のjspには、次のものがあります。 <img src="<c:url value='/images/logo.png'/>" alt="Logo">

ロゴファイルへのパスをPOJOのclientLogo-propertyに置き換える必要があります。使用するHashMapキーは、セッションに格納されているUserオブジェクトから抽出する必要があります。次のように取得できます。${sessionScope['user'].clientId}

何か案は?それが重要な場合は、struts2とspringbtwを使用します。

4

1 に答える 1

0

サーブレットコンテキストから属性を取得するfooには、セッションから属性を取得する場合と同じ構文を使用しますが、sessionScopeをapplicationScopeに置き換えます。

しかし、ここには非常に多くのネストされたものがあるため、変数を定義する必要があります。

<c:set var="map" value="${applicationScope['clientProps']}"/>
<c:set var="mapKey" value="${sessionScope['user'].clientId}"/>
<c:set var="pojo" value="${map[mapKey]}"/>
<c:set var="clientLogo" value="${pojo.clientLogo}"/>

<c:url value="${clientLogo}"/>

これは通常、ビューで実行する必要のない種類のハードワークであることに注意してください。コントローラのJavaで画像パスの取得を実装し、アクション/フォームのプロパティとして利用できるようにして、ビューから直接アクセスします。

于 2012-05-09T15:23:52.007 に答える