1

新しい Spring MVC 3 アプリで Tiles 2 を使用しています。これは私のテンプレートです

  <definition name="baseLayout" template="/WEB-INF/jsp/layout/layout.jsp"  >
        <put-attribute name="title" value="" />
        <put-attribute name="header" value="/WEB-INF/jsp/layout/header.jsp" />
        <put-attribute name="body" value="" />
        <put-attribute name="userInfo" value="" />
        <put-attribute name="footer" value="/WEB-INF/jsp/layout/footer.jsp" />
    </definition>

そしてマイページ

<definition name="engageStep1View" extends="baseLayout"  >
        <put-attribute name="title" value="" />
        <put-attribute name="body" value="/WEB-INF/jsp/private/engageStep1.jsp" />
        <put-attribute name="userInfo" value="/layout/userInfo" />
</definition>

tiles.xml 定義に次の行を追加しました

<definition name="userInfoView" template="/WEB-INF/jsp/layout/userInfo.jsp"   />

コントローラーへの enagageStep1 呼び出しには、より良いアイデアがあります。

  @RequestMapping(value = "/layout/userInfo")
    public ModelAndView handleRequest(ModelMap model) {

        ......
        MemberPrincipal memberPrincipal = (MemberPrincipal)authentication.getPrincipal();

        model.put("userName", memberPrincipal.getUserName());

        return new ModelAndView("userInfoView", "model", model);
    }

何か案が?

ありがとう

4

1 に答える 1

0

userInfo コントローラー メソッドが、アプリやサイト全体に適用できる情報を提供しているようです。この種の情報については、Spring インターセプターを使用して、現在の属性コンテキストに必要な情報を入力できます。次に、userInfoView は、userInfo コントローラー メソッドを参照することなく、必要に応じてこの情報を使用できます。

もう 1 つの同様のアプローチは、タイル ビュー プリペアラーを使用することです。

于 2012-11-18T16:42:56.040 に答える