0

シンプルな Spring MVC アプリケーションを実行しています。コントローラーからjspに文字列値を渡すことができます-正常に動作します。

コントローラーがリスト データを渡すように求められると、jsp ビューでのレンダリングに失敗します。jspに渡す前に、コントローラー側でデータをテストして、空でないことを確認しました。

以下のコード抜粋

@RequestMapping(method = RequestMethod.GET)
public ModelAndView printWelcome(){   

    ArrayList<String> listData = new ArrayList<String>();
    listData.add("Hello");
    listData.add("World");


    for(int i =0; i< listData.size(); i++){
        System.out.println(listData.get(i));
    }

    ModelAndView modelAndView = new ModelAndView("list");
    modelAndView.addObject("lists", listData);

    return modelAndView;                
}



<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <h1>Hello World!</h1>


    <ul>
        <c:forEach var="listValue" items="${listData}">
            <li>${listValue}</li>
        </c:forEach>
    </ul>


</body>

編集:

問題は私の春のconfでした。(私は思う-私はまだこれに慣れていないので。)

コントローラーは ModelAndView オブジェクトを返していましたが、実際には文字列のビュー名のみを返す必要があります。また、作業中のコントローラーには、パラメーター arg ModelView を持つコンストラクターがあり、リスト データを追加する必要があります。

    @RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap map){

    List<String> listData = new ArrayList<String>();
    listData.add("Hello");
    listData.add("World");

    map.addAttribute("lists", listData);
    //return list;
    return "list";

}
4

2 に答える 2

2

以下のように使用してみてください。モデルに保存したキーを使用する必要があります。HashMap のように動作します。

<ul>
    <c:forEach var="listValue" items="${lists}">
      <li>${listValue}</li>
    </c:forEach>
</ul>
于 2015-03-02T14:20:04.920 に答える