0

リクエストで選択したキャッシュ操作をエコーバックして、ブラウザに表示したい。JSPの経験はほとんどありません。操作の値を表示するにはどうすればよいですか?

JSP:

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

<html>
    <body>
        <h1>Cache Operation Results - ${operation}</h1>
        <ul>
            <c:forEach items="${results}" var="nextObject">
                <pre>${nextObject.toString()}</pre>
            </c:forEach>
        </ul>
    </body>
</html>

コントローラースニペット:

@RequestMapping(value = "/objectcache", method = RequestMethod.GET)
public ModelAndView objectCache(@RequestParam("operation") String operation, HttpServletRequest req) {

    List<String> cacheReturnValue = new ArrayList<String>();
    ModelAndView mav = new ModelAndView("/utils/objectCache", "results", cacheReturnValue);

    if (operation.equalsIgnoreCase("reload")) {
        cacheReturnValue = this.reloadCache();
    }

    mav.addObject("operation", operation);
    return new ModelAndView("/utils/objectCache", "results", cacheReturnValue);
}
4

2 に答える 2

0

あなたが持っているコードは、バグを削除した後に適切に動作するはずです.2回作成したため、最初のオブジェクトに追加された「操作」を無視しました。解決策 - 1 回だけ作成します。ModelAndViewModelAndViewmav

@RequestMapping(value = "/objectcache", method = RequestMethod.GET)
public ModelAndView objectCache(@RequestParam("operation") String operation,
        HttpServletRequest req) {

    List<String> cacheReturnValue = new ArrayList<String>();

    if (operation.equalsIgnoreCase("reload")) {
        cacheReturnValue = this.reloadCache();
    }

    ModelAndView mav = new ModelAndView("/utils/objectCache");
    mav.addObject("results", cacheReturnValue);
    mav.addObject("operation", operation);
    return mav;
}

編集:

小さなヒント:オブジェクトへのModelAndView#addObject参照を返すため、次のようthisに変数を作成せずに呼び出しを連鎖させることができます。mav

return new ModelAndView("/utils/objectCache")
        .addObject("results", cacheReturnValue)
        .addObject("operation", operation);
于 2012-09-04T18:16:54.727 に答える
0

JSP ページは、式を介していくつかの暗黙的なオブジェクトにアクセスできます。そのドキュメントに記載されている例によると、次のようにパラメーター値を取得できます。

${param['operation']} 
于 2012-09-04T18:16:15.370 に答える