そのため、さまざまな理由でこれら 2 つの要素のいずれかを使用しようとすると問題が発生します。まず、 で何が起こるかを説明します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
タイプと呼ばれるリストから値が取り込まれます。sj:select
変更の値が という名前のコントローラーの関数を呼び出すとgetNewList
、チェックボックスリストを使用するリストが変更されますが、チェックボックスリストを更新するにはどうすればよいですか。
を使用してこれを解決できることがsj:checkboxlist
わかりますが、それが機能することはわかっていますが、そうすると、 Integer array を介してチェックされるチェックボックスをロードしようとすると、チェックボックスがチェックされidsType
ません。たとえば、次のような整数配列があるとします。
idsType = { 2, 3 }
arrayOfIds
5 つの要素を持つリストがある場合、 を使用するとs:checkboxlist
、5 つのチェックボックスが表示され、2 番目と 3 番目のチェックボックスがオンになります。
しかし、 を使用してこれを行うsj:checkboxlist
と、最初のチェックボックスのみがチェックされ、sj:select
値に応じてチェックボックスが動的に変化しますs:checkboxlist
。
どうすればこの問題を解決できるか本当に迷っています。誰かが助けてくれれば大歓迎です。