2011-08-07 5 views
1

フィールドにstruts2アクションがあります。private Long omradeId; フィールドにはゲッターがあります。JavaScriptへのStruts2パラメーター

アクションはjspに送信され、jsp内では<s:property>タグを使用してフィールドにアクセスできます。それはすべて良いです。

ここでは、jspの中に私が<script>を定義するセクションもあります。そのスクリプト内で、上記のstruts2フィールドを値としてurlを構築する変数を作成したいと考えています。

<script type="text/javascript"> 
var url = "/path/to/action?parameter1="; 
</script> 

等号(=)記号の後ろにomradeIdの値を入れることはできますか?私は<s:property>を使ってみましたが、うまくいきませんでした。 提案がありますか?

答えて

1

これは動作するはずです:

<script type="text/javascript"> 
var url = "/path/to/action?parameter1=<s:property value="omradeId">"; 
</script> 

値がnullではなく、値が正常にアクションクラスに設定されているかどうかをチェックすべきではない場合。

4

"/ path/to"はWebサーバーによって異なります。これを避けるには、struts2 urlタグを使用します。

参照:名前空間の「アクション」と呼ばれるアクションのhttp://struts.apache.org/2.x/docs/url.html

「/」パラメーター1が値omradeIdを持つというパラメータでは、あなたは、単に言う:

<s:url namespace="/" action="action"> 
    <param name="parameter1" value="%{omradeId}"/> 
</s:url> 

がに上記を入れJS変数:

var url = "<s:url action="action"><param name="parameter1" value="%{omradeId}"/></s:url>"; 

上記を使用すると、アプリケーションを別のアプリケーションサーバーに変更せずにインストールできます。

多くのパラメータを使用してs:urlタグにvarパラメータを追加して名前を付けると、s:プロパティを使用してこの文字列を数多くの場所で参照することができますタグは物事をきれいに保つだろう。

<s:url namespace="/" action="action" var="myString"> 
    <param name="parameter1" value="%{omradeId}"/> 
</s:url> 

var url = "<s:property value="#myString"/>"; 
関連する問題