0

通常、ページを作成するときは、URL に関連付けられた RequestMapping と、ページに表示する必要がある変数を設定できる RequestMethod.GET を使用して、そのページのコントローラーを作成します。

私が持っているのは、すべてのページに表示されるニュース ウィジェットです。1 つのページにのみ表示される場合は、次のようにします。

@Controller
@RequestMapping("/news")
public class NewsController {

    @RequestMapping(method = RequestMethod.GET)
    public String setupForm(
            HttpServletRequest request,
            @Valid @ModelAttribute("RA") RA ra,
            ModelAndView modelAndView,
            Model model) {
        // do some stuff to ra, put values in model, ....
    }

}

そしてJSPXページには次のようなものがあります:

<c:forEach var="article" items="${newsarticles}" >
    <h1>${article.title}</h1>
    ${article.body}
    <br />
</c:forEach>

私が解決しようとしている問題は、RequestMapping に無数の URL を明示的にリストすることなく、すべてのページまたはメイン テンプレートで上記の JSPX スニペットを複製する方法です。

JSF では #{newsBean.newsarticles} を使用するだけで、すべてのページで機能します。

リクエストインターセプターは機能しますが、RequestInterceptor なしでこれを行うより良い方法はありますか、または RequestInterceptor が私の唯一のオプションですか?

4

1 に答える 1

1

1 つの方法は、RequestInterceptor を実装することですが、すべてのリクエストで記事を取得する代わりに、記事リストをセッションに配置します。その後、リストは 1 回だけ取得され、セッションに保存され、リストが既にあるかどうかを確認するだけです。セッション内に存在します。

于 2012-08-16T03:56:53.270 に答える