因此,出于不同的原因,我很难尝试使用这两个元素中的任何一个。首先,我将描述s:checkboxlist
.
当sj:select
我想在我的控制器上填充一个列表以在我的 上使用的更改值时s:checkboxlist
,我是否必须使用 javascript?我最初的猜测是在sj:select onchange=""
参数上调用一个 javascript 函数,然后在 javascript 函数上刷新它,s:checkboxlist
以便它使用新列表填充。
例如,如果我有类似的东西sj:select
:
<s:url id="urlGetNewList"
action="mycontroller!getNewList" />
<sj:select href="%{urlGetNewList}" id="myselect"
onChangeTopics="reloadList"
onCompleteTopics="reloadList"
name="model.idType" list="types"
listKey="idType" listValue="nameType"
emptyOption="false" headerKey="-1"
headerValue="select a value"
formIds="frmMyForm" />
我s:checkboxlist
有:
<s:checkboxlist name="arrayOfIds" list="idsType"
listKey="id" listValue="name"
theme="vertical-checkbox" />
所以我s:select
从一个名为 types 的列表中填充,当sj:select
我在我的控制器上调用一个名为 的函数的更改值时getNewList
,这将更改使用我的复选框列表的列表,但是如何刷新复选框列表。
您可以注意到我可以通过使用 a 来解决这个问题sj:checkboxlist
,我知道它可以工作,但是如果我这样做,那么当我尝试加载通过 Integer array 检查idsType
的复选框时,复选框将不会被选中。例如,如果我有一个这样的整数数组:
idsType = { 2, 3 }
我有一个arrayOfIds
包含 5 个元素的列表,然后当我使用s:checkboxlist
5 个复选框时,将显示第二个和第三个复选框。
但是,如果sj:checkboxlist
我sj:select
使用s:checkboxlist
.
对于如何解决这个问题,我真的很迷茫,如果有人可以提供帮助,将不胜感激。