动态更改struts2 url的参数

时间:2011-09-05 15:27:13

标签: java url parameters tags struts2

我在struts2框架中动态地为url分配参数时遇到问题。 我正在努力解决这个问题几天,我不能把它付诸实践。 一点背景,我正在使用struts2做一个Web应用程序,我也使用JQuery插件。 我有两个自动完成,我需要相互链接,我发现这样做的最好方法是将第一个自动完成器上的选择项的ID传递给第二个,以缩小其选项范围。

所以我正在做的就像这样,如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 :(得分:0)

我不确定我是否理解你,但我认为你不能用“s:”标签来做,因为这些是在页面生成时在服务器端处理的,并且一旦页面完成就无法再次处理负荷。

答案 1 :(得分:0)

您必须使用jQuery客户端构建URL。您可以使用s:url标记创建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变量分配给你需要的地方。