jQueryとJavaのリストの例

jQueryとJavaリストの例

jQueryを使用してJavaリストを反復処理する直接的な方法はありません。次のケーススタディを参照してください。

スプリングコントローラー

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView getPages() {

        List list = new ArrayList();
        list.add("List A");
        list.add("List B");
        list.add("List C");
        list.add("List D");
        list.add("List E");

        ModelAndView model = new ModelAndView("somepage");
        model.addObject("list", list);

        return model;

    }

JSPページでは、${List}を介してリストオブジェクトにアクセスし、JSTLを介してそれを反復処理できます。

somepage.jsp

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

    
    
  • ${listValue}
  • ListオブジェクトをjQueryに直接渡したい場合はどうすればよいですか?

    問題:Javaリストには二重引用符はありません

    jQuery$.each()を使用してJavaリストを反復処理する例。

    HTMLページ

    上記のjQueryスクリプトは実行されません“ Uncaught SyntaxError:Unexpected token、”

    htmlページ(ソースコード)

    上記のhtmlソースコードを確認してください。Javaリストはリストの値を二重引用符"で囲んでいないため、jQueryはそれを処理できません。

    解決策:JavaリストをJSONに変換する

    ソリューションは、jQueryに渡す前にJavaリストをJSON形式に変換します。 Springコントローラーで、Jackson(または他のJSONプロセッサー)を使用して、リストをJSON形式に変換します。

        @RequestMapping(value = "/", method = RequestMethod.GET)
        public ModelAndView getPages() {
    
            ObjectMapper mapper = new ObjectMapper();
    
            List list = new ArrayList();
            list.add("List A");
            list.add("List B");
            list.add("List C");
            list.add("List D");
            list.add("List E");
    
            ModelAndView model = new ModelAndView("somepage");
    
            String json = "";
            try {
                json = mapper.writeValueAsString(list);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            model.addObject("list", json);
    
            return model;
    
        }

    HTMLページ

    htmlソースコードを確認します。

    htmlページ(ソースコード)

    完了しました。

    Note
    JSON形式の文字列のオブジェクト配列をループするには、jQueryで解析する前にJavaScriptオブジェクト(JSON.parse()または$.parseJSON())に変換する必要があります$.each()。 この例を参照してください–JQuery Loop Over JSON String