2016-05-04 6 views
4

this questionと似たようなことをしようとしていますが、回答で問題が解決されません。私はStruts2バージョン2.3.28.1を使用しています。Struts2:プロパティ値の文字列リテラルを評価する

<s:property>タグと動的な値の文字列リテラルを使用してセッション内のデータにアクセスしようとしています。

私が行う場合:

<s:property value="#session.data_1"></s:property> 

そして、正しいデータが表示されます。今、私は、次しようとすると:

表示
<s:set var="part1" value="#variable.code"></s:set> 
<s:set var="part2" value="'#session.data_'+#part1"></s:set> 

<s:property value="part2"></s:property> 
<s:property value="%{part2}"></s:property> 
<s:property value="%{#part2}"></s:property> 
<s:property value="#attr[#part2]" default="Not working"></s:property> 
<s:property value="(#part2)" default="Not working"></s:property> 
<s:property value="%{(#part2)}" default="Not working"></s:property> 

#session.data_1 
#session.data_1 
#session.data_1 
Not working 
#session.data_1 
#session.data_1 

(はい、私はちょっと、私は、彼らが意味を成していない場合でも、思いつく限りの可能な組み合わせを試してみました...)

<s:property>タグを文字列リテラルとして解釈する代わりに#part2と評価するにはどうすればよいですか?私の理解では、%{}はトリックをしてはいけません。

答えて

3

セッションから値を取得しようとしていて、#attrを実行しても機能しません。

簡単な方法があります。 #sessionキーワードを直接使用してください。

<s:property value="#session['data_' + #variable.code]" /> 
+1

ありがとうございました!私はその1つの笑で机の上で頭を打っていた – Flanfl

関連する問題