struts2 と tiles(2) フレームワークで BBS を開発しています。
ActionSupport クラスに値をプッシュし、タイルの layout.jsp に値をポップしたいと考えています。しかし、私は値へのアクセスに失敗し続けています。
私の作品を順を追って説明します。
1) ユーザーはリンクをクリックして、一覧ページで記事を表示します。また、struts.xml で定義されているように BoardView クラスが呼び出されます。
--list.jsp--
<a href="view_board?num=${num}"> ${ subject } </a>
--struts.xml--
<action name="View_board" class="board.BoardView">
<result type="tiles">board.view</result>
</action>
2)アクションクラスはタイトルを値スタックに入れます...そうですか?
--BoardView クラス--
public class BoardView extends ActionSupport
private String title;
public void Execute() throws Exception {
...
setTitle(board.getSubject());
return SUCCESS;
}
...
(setter and getter of title)
3) ActionClass が SUCCESS を返すと、board.view
--struts.xml--という名前のタイル定義に移動します。
<action name="View_board" class="board.BoardView">
<result type="tiles">board.view</result>
</action>
4) tiles-def.xml と問題は次のとおりです。「タイトル」の値は値スタックからポップできないと思います。
==tiles-def.xml==
(タグでインデントできません...ごめんなさい)
これがlayout.jsp ==layout.jsp==
<definition name="board.view" extends="layout">
<put-attribute name="title" value="%title" />
<put-attribute name="body" value="/board/view.jsp" />
</definition>
...
<title><tiles:getAsString name="title" /></title>
...
value 属性を %{title}、$title、${title} に置き換えてみました。しかし、何もうまくいきませんでした。Web ブラウザは、文字列 ($title) 自体を表示するだけです。
どうすればいいのかわからない...助けてください。
私の悪い説明にもかかわらず、私の作品を理解していただければ幸いです。