如何动态制作标题?

时间:2010-04-03 09:16:19

标签: struts2 el tiles2

我正在struts2和tiles(2)框架中开发BBS。

我想在ActionSupport类中推送一个值,并在tiles的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)Action类会将标题放入值堆栈......对吗?

- 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
的tile定义 --struts.xml--
<action name="View_board" class="board.BoardView">
<result type="tiles">board.view</result>
</action>

4)这是tiles-def.xml和问题。我认为'title'的价值不能从价值堆栈中弹出 ==瓷砖-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)。

我不知道该怎么办...请帮帮我。

尽管我的解释不好,但我希望你们都理解我的作品。

1 个答案:

答案 0 :(得分:2)

作为我对当前项目的解决方案。

  1. 在模板jsp中:put <c:out value="${pageTitle}" default="My Title"></c:out>
  2. 因此,在每个动作类中,您都应该创建变量pageTitle到DYNAMIC Title。