如何在 Struts2 自动完成操作中传递 javascript 对象?
How to pass javascript object in Struts2 autocompleter action?
我正在尝试通过参数将 javascript 对象发送到 Struts2 自动完成操作。但是没用。
这是我的代码:
<script>
var nameList = new Array();
function func1(element)
{
console.log(element.value);
var index = nameList.indexOf(element.value);
element.checked ? nameList.push(element.value) : nameList.splice(index,1);
console.log(nameList.length+"---- "+nameList);
}
</script>
<s:form name="baseForm" id="baseForm">
<table width="100%" >
<tr>
<td ><s:text name="Units" /></td>
<td>
<s:iterator value="units" status="itr" id="un">
<input type="checkbox" onclick="func1(this)"
name="unitList[<s:property value="#itr.index"/>]"
value="<s:property value="#un" />" />
</s:iterator>
</td>
</tr>
<tr>
<td ><s:text name="Groups"/></td>
<td width="80%">
<sd:autocompleter href='get_groups.action?unitList=%{nameList}' id='unitAutoComplete' name='unitGroup' loadOnTextChange='true'
loadMinimumCount='1' showDownArrow='false' autoComplete='false' />
</td>
</tr>
</table>
</s:form>
根据选择的单位,组应该在自动完成器中填充。
所以我的第一个问题是 是否可以通过参数将 javascript 对象发送到 struts2 动作中?
如果是,请建议我如何将 javascript 对象作为参数传递给操作。
您不能在同一个请求中执行此操作。自动完成标记呈现在 server-side 上,但您想在 client-side 上使用 JavaScript 修改它,当它已经呈现时。
最好的办法是 ajax 调用服务器并将变量传递给执行它的操作,以修改自动完成操作返回的列表。
如何将 JavaScript 对象传递给服务器 你应该知道你需要 JSON 格式。您可以阅读 Action to accept dynamic json data from user interface 以获取有关如何将 JavaScript 对象转换为 JSON 并将其发送到操作的更多信息。
我正在尝试通过参数将 javascript 对象发送到 Struts2 自动完成操作。但是没用。
这是我的代码:
<script>
var nameList = new Array();
function func1(element)
{
console.log(element.value);
var index = nameList.indexOf(element.value);
element.checked ? nameList.push(element.value) : nameList.splice(index,1);
console.log(nameList.length+"---- "+nameList);
}
</script>
<s:form name="baseForm" id="baseForm">
<table width="100%" >
<tr>
<td ><s:text name="Units" /></td>
<td>
<s:iterator value="units" status="itr" id="un">
<input type="checkbox" onclick="func1(this)"
name="unitList[<s:property value="#itr.index"/>]"
value="<s:property value="#un" />" />
</s:iterator>
</td>
</tr>
<tr>
<td ><s:text name="Groups"/></td>
<td width="80%">
<sd:autocompleter href='get_groups.action?unitList=%{nameList}' id='unitAutoComplete' name='unitGroup' loadOnTextChange='true'
loadMinimumCount='1' showDownArrow='false' autoComplete='false' />
</td>
</tr>
</table>
</s:form>
根据选择的单位,组应该在自动完成器中填充。
所以我的第一个问题是 是否可以通过参数将 javascript 对象发送到 struts2 动作中?
如果是,请建议我如何将 javascript 对象作为参数传递给操作。
您不能在同一个请求中执行此操作。自动完成标记呈现在 server-side 上,但您想在 client-side 上使用 JavaScript 修改它,当它已经呈现时。
最好的办法是 ajax 调用服务器并将变量传递给执行它的操作,以修改自动完成操作返回的列表。
如何将 JavaScript 对象传递给服务器 你应该知道你需要 JSON 格式。您可以阅读 Action to accept dynamic json data from user interface 以获取有关如何将 JavaScript 对象转换为 JSON 并将其发送到操作的更多信息。