Динамически изменить параметр Struts2 URL - PullRequest
1 голос
/ 05 сентября 2011

У меня проблемы с динамическим назначением параметра для URL в структуре Struts2.Я борюсь с этим пару дней и не могу заставить его работать.Немного предыстории, я делаю веб-приложение с использованием struts2, я также использую плагин JQuery.У меня есть два автозаполнения, которые мне нужно связать друг с другом, лучший способ, который я нашел, - передать идентификатор выбранного элемента в первом автозаполнении второму, чтобы сузить его параметры.

Так что я делаю что-то вроде этого, как указано здесь http://struts.apache.org/2.2.3/docs/url.html

<s:url id="contactsautocompleterurl" action="contacts-autocompleter">
    <s:param name="companyId" value="%{companyId}"></s:param>
</s:url>

<s:hidden id="contact_company_id" name="companyId"></s:hidden>

Я устанавливаю значение скрытого поля с помощью JQuery, и я вижу, что значение изменяется.Моя проблема состоит в том, чтобы получить это значение в параметре.Я тоже так пытался, но ничего не получилось

<s:param name="companyId" value="%{contact_company_id}"></s:param>

Я уверен, что мне не хватает крошечной детали, надеюсь, кто-то может указать на это.*

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

Вам нужно будет создать URL-адрес на стороне клиента jQuery. Вы можете создать URL с помощью тега s: url и манипулировать им в javascript, как только вы сделаете свой выбор на странице.

<s:url id="contactsautocompleterurl" action="contacts-autocompleter" />
<script type="text/javascript">
    var actionURL = '<s:property value="%{contactsautocompleterurl}" />';

    $('#companyIdSelect').change(function(){
        var companyIDvalue = $(this).val();
        actionURL += '?companyId=' + companyIDvalue;
     });
</script>

Это должно привести к результатам, которые вы ищете, тогда вы просто назначаете переменную actionURL javascript там, где вам это нужно.

0 голосов
/ 05 сентября 2011

Я не уверен, что понял вас, но думаю, что вы не можете сделать это с тегами "s:", поскольку они обрабатываются на стороне сервера при генерации страницы и не могут быть обработаны снова после завершения страницы загрузка.

...