3

動作します(リストを正常にロードします):

<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter list="lstcountry"
    listKey="idcountry" listValue="countryname" label="Country"
    href="%{countrylist}" name="idcountry" />

動作しません (何もロードされません。アクションへの呼び出しは行われません):

<s:url id="countrylist" action="lstcountryaction" />
<sj:autocompleter selectBox="true" list="lstcountry"
    listKey="idcountry" listValue="countryname" label="Country"
    href="%{countrylist}" name="idcountry" />

唯一の違いは、selectBox属性が追加されていることです。私は何が欠けていますか?私は Struts 2.3.15 と Struts2 JQuery Plugin 3.6.1 を使用しています (どちらもかなり最近のものです)。

ありがとう !!

4

2 に答える 2

2

正しく動作できるように有効化されたStruts2 jQueryautocompleterウィジェットは、データをリモートでロードするべきではありません。selectBox=trueつまり、属性href="%{countrylist}"は、選択ボックスが機能していない原因です。これら 2 つの属性は相互に排他的です。autocompleterリモート データを含む入力ボックスとして使用するか、データをリモートでロードせずに選択ボックスとして使用するかの 2 つのオプションから選択する必要があります。これは、データがvalueStack通常のselectタグとしてロードされるためです。

選択ボックスを補完しselectBoxIcon="true"て、ウィジェットをスムーズに表示したり、ヘッダー タグで対応する jQuery テーマを使用したりできます。それを試してみてください

<sj:autocompleter selectBox="true" selectBoxIcon="true" list="lstcountry"
    listKey="idcountry" listValue="countryname" label="Country"
    name="idcountry" /> 

struts2 jQuery プラグイン wiki ページの例。

于 2013-12-19T10:05:39.823 に答える
2

+1は、関連する Google グループに既に投稿されていることを確認したためです...しかし、プラグイン作成者によるこの (かなり古いが、まだ開いている JIRA) コメントによると、その間に変更がない場合:

selectBox を使用したオートコンプリートは、静的リストを操作しています。あなたのユースケースでは、<sj:select />代わりに autocomplete="true" でタグを使用する必要があります。

<s:url id="remoteurl" action="jsonsample"/> 
<sj:select
         href="%{remoteurl}"
         autocomplete="true"
         id="echo3"
         name="echo"
         list="languageObjList"
         listKey="myKey"
         listValue="myValue"
         emptyOption="true"
         headerKey="-1"
         headerValue="Please Select a Language"/>

次に、<sj:select />with both emptyOptionand autocompleteset toは、探しているtrue動的選択ボックスの代わりになる可能性があります。<sj:autocompleter />

この例も自由に実行してください。これはそのままで動作するようです。

于 2013-12-19T00:02:33.910 に答える