2016-08-12 13 views
1

としてURLを渡す:Struts2のは、ここに私のコードの抜粋です私はフォームを送信するjavascript関数を使用していて、JavaScript関数に、私は<code>form.action= "Struts2 url goes here";</code></p> <p>を指定したい文字列

var form = document.forms['myForm']; 
if (form != null) { 
    var backURL = "ActionB!someMethodB.action?Bparam1=somevalue&Bparam2=somevalue"; 
    form.action="ActionA!someMethodA.action?Aparam1=somevalue&Aparam2=" + backURL; 
    form.submit(); 
} 

問題アクションメソッドsomeMethodAでは、Aparam2の値は、最初のアンパサンドで常にbackURLに切り捨てられます。

backURLを同封すると、form.action="ActionA!someMethodA.action?Aparam1=somevalue&Aparam2='" + backURL + "'";のような引用符で囲まれましたが、機能しませんでした。それは私のような気持ちで、backURLの値は全体として扱われるのではなく、同様に解析されるように感じます。

これを回避する方法があるかどうかを知りたいと思います。

答えて

1

特殊文字を含むURLでパラメータを使用する場合は、それらをURLエンコードする必要があります。

var backURL = encodeURIComponent("ActionB!someMethodB.action?Bparam1=somevalue&amp;Bparam2=somevalue"); 

また、URLのハードコードされた値は、s:urlタグを持つサーバー上に構築できます。デフォルト&によってこの場合

var backURL = encodeURIComponent('<s:url action="ActionB" method="someMethodB"><s:param name="Bparam1" value="somevalue"/><s:param name="Bparam2" value="somevalue"/></s:url>'); 

&amp;に逃げたが、ブラウザで通常使用されている値をエスケープされます。

+0

助けてください。ありがとうございました。 – Will

関連する問題

 関連する問題