Поэтому у меня возникли проблемы при попытке использовать любой из этих двух элементов по разным причинам.Сначала я опишу, что происходит с s:checkboxlist
.
Когда значение на sj:select
изменится, я хочу заполнить список на моем контроллере для использования на моем s:checkboxlist
, должен ли я использоватьJavaScript?Сначала я предполагал вызвать функцию javascript для параметра sj:select onchange=""
, а затем функцию 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
заполняется из списка, называемого типами, когда значение на sj:select
Изменения Я вызываю функцию на моем контроллере с именем getNewList
, которая изменит список, использующий мой список флажков, но как можно обновить список флажков.
Вы можете заметить, что я мог бы решить эту проблему, используя sj:checkboxlist
Я знаю, что это работает, но если я сделаю это, то при попытке загрузить флажок, который отмечен через массив Integer idsType
, флажки не будут проверены.Например, если у меня есть массив Integer, подобный этому:
idsType = { 2, 3 }
, и у меня есть список arrayOfIds
с 5 элементами, тогда, когда я использую s:checkboxlist
, будут показаны 5 флажков, а второй ибудет установлен третий флажок.
Но если я сделаю это с помощью sj:checkboxlist
, то будет установлен только первый флажок, а также флажки изменятся динамически в соответствии со значением sj:select
, что не произойдеткогда я использую s:checkboxlist
.
Я действительно теряюсь в том, как я могу решить эту проблему, если кто-то может помочь, она будет очень признательна.