2010-04-03 40 views
0

我正在使用struts2和tiles(2)框架開發BBS。我該如何動態製作標題?

我想在ActionSupport類中推送一個值並在tile的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和問題。我認爲'標題'的價值不能從價值堆棧中彈出。
==磚,def.xml ==
<definition name="board.view" extends="layout">
<put-attribute name="title" value="%title" />
<put-attribute name="body" value="/board/view.jsp" />
</definition>


(我無法用標籤...對不起縮進)這裏的layout.jsp == == layout.jsp
... <title><tiles:getAsString name="title" /></title> ...

我試圖將value屬性替換爲%{title},$ title和$ {title}。但沒有解決。 Web瀏覽器只顯示字符串本身($ title)。

我不知道該怎麼辦......請幫助我。

我希望你們都瞭解我的作品,儘管我的解釋不好。

回答

2

作爲我當前項目的解決方案。

  1. 在模板的jsp:把<c:out value="${pageTitle}" default="My Title"></c:out>
  2. 所以,在每一個動作類,你應該創建變量PAGETITLE到動態標題。
+0

@Marko - 如果你想upvote你遇到的每一個遲到的答案,請至少改善那些需要他們的。這個答案需要格式化以正確顯示代碼;因爲它是,你批准的答案是沒有意義的。 – LittleBobbyTables 2012-11-26 19:29:42