2016-08-12 2 views
1

Я использую функцию яваскрипта представить форму, и в яваскрипте функции, я бы указать form.action= "Struts2 url goes here";Struts2 передачи URL как строка

Вот отрывок из моего кода:

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-адресе, который содержит специальные символы, они должны быть уркокодированы.

var backURL = encodeURIComponent("ActionB!someMethodB.action?Bparam1=somevalue&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

 Смежные вопросы

  • Нет связанных вопросов^_^