0

SpringRooテンプレートに基づくSpringプロジェクトがあります。コンボボックスにオートコンプリートを実装したい。何時間も調査した結果、サーバー側からデータをフェッチし、結果としてオプションの短いリストのみが必要になるため、dojox.data.QueryReadStoreを使用することが最善のオプションであることがわかりました。

私の問題は、Springでdojoを実装するのがまだ初めてで、comboBoxをQueryReadStoreに接続する方法がわからないことです。アイデアは、コントローラーのメソッドを呼び出し、ユーザーがdecomboBoxに入力したときに結果をフェッチすることです。

編集:

var store = dojox.data.queryReadStore({url:'/.../something'})
Spring.addDecoration(new Spring.ElementDecoration({elementId : ${fn:escapeXml(fieldname)}, widgetType: 'dijit.form.ComboBox', 
        widgetAttrs : {                   
            hasDownArrow : false,
            store:store,
            searchAttr:"name",
            autoComplete:false,
        }

    }));

コントローラ:

@Controller
Class controller{
    @RequestMapping(value = "/something", method = RequestMethod.GET)
    public @ResponseBody List<String> someMethod(@RequestParam("name") String queryString){
        //use queryString here
        return listOfStrings;
    }
}

ヒントやアイデアは大歓迎です。ありがとう。

4

1 に答える 1

0

queryReadstoreはパラメータをurl:giveyoururlとしてここに受け入れます

var store = dojox.data.QueryReadStore({url:http:// ... .. /someString})
var filteringSelect = new FilteringSelect({
            id: "stateSelect",
            name: "state",
            value: "CA",
            store: stateStore,
            searchAttr: "name"
        }, "stateSelect");

次に、dispatcher-servlet.xmlで、またはアノテーションを使用して、このURLをコントローラーにマップします。

@Controller
Class controller{
    @RequestMapping("someString")
    public void someMethod(@RequestParam("name") String queryString){
        //use queryString here
        out.write(response in JSON string format);
    }
}
  • @RequestParam(parametername)のparameternameに注意してください。これは、select属性のフィルタリングのsearchAttrと同じになります。
于 2013-03-12T16:22:53.020 に答える