我在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>
我确定我错过了一个小细节,希望有人能指出来。
提前致谢。
答案 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变量分配给你需要的地方。