2011-09-08 7 views
2

マップ内の値を設定するには、ボタンの構文を提出し、私は私が前に見たことがない、ボタンを提出のため、この構文を参照してください...それは働いていないのStruts 2 S:私はいくつかのStruts 2のコードを閲覧しています

<s:submit key="map.keyName$Value" /> 

( Struts 2.0.xで動作していましたが、Struts 2.2.3に移行しました)。私はその地図に記載されているキーに基づいて適切な値を設定しないことを意味します。

誰もこの構文を以前に使用しましたか?

map(strutsタグのみを使用)でSET値を使用できるようにする代替の構文候補は、大歓迎です。

このコードを含むjspページは、実行時に任意のページに含めることができる分離されたコンポーネントであるように設計されているため、このページでこれらの値をjavaマップで設定することはできませんマップ内の値を設定できるタグソリューションです。マップで事前に

おかげで

答えて

2

設定値:

のみ

OGNL代入文JSPで

<s:set var="" value="map[key] = keyValue" /> 

のJava

0123あなたはonclickので送信ボタンを属性を、例えば(答えによって

<s:hidden name="map[key]" value="keyValue" /> 

で(アクションクラスに)マップに値を設定することができ

<s:set var="" value="map.put(key, keyValue)" /> 

EDIT

- 複数の提出ボタンを想定):

<script type="text/javascript"> 
    function setMap(key, keyValue) { 
     document.getElementById("mapToSet").name="map['" + key + "']"; 
     document.getElementById("mapToSet").value=keyValue; 
    } 
</script> 

<s:hidden name="test" id="mapToSet" /> 
<s:submit value="Search" onclick="setMap(key, keyValue)" /> 
+0

s:送信ボタンをクリックすると、この値をマップに設定する必要があります。 s:setタグをs:submitタグの中にネストすることはできますか? –

+0

ありがとうlschin、あなたのソリューションは仕事をします。しかし、私の問題は、クライアントがjavascriptを無効にしていてもアプリケーションが正常に動作する必要があるため、JavaScriptのアプリケーションの重要な機能を基にすることができないことです。だから私はまだアクションを呼び出すことなく私のためにこのセッターの仕事を行ういくつかのstruts/jstlタグベースのソリューションを探しています。 –

2

「どのようStruts2の中でマップの値を設定するには」を検索する際に、私は、このページを発見し、それは(私が少しOTであることを理解)以下の答えに私を導いた:


として、 HTMLのinput要素:これはアクション変数を移入う

<input type="hidden" name="myField[105]" value="myValue" /> 

が宣言のように:

Map<Integer, String> myField; 

そのように:

myField.get(105).equals("myValue"); // == true 
関連する問題