【问题标题】:How can I make title dynamically?如何动态制作标题?
【发布时间】:2010-04-03 09:16:19
【问题描述】:

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

我想在 ActionSupport 类中推送一个值,然后在图块的 layout.jsp 中弹出该值。但我只是一直无法访问该值。

我会一步一步解释我的作品。

1) 用户点击链接在列表页面查看文章。并且 BoardView 类将按照 struts.xml 中的定义调​​用

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

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

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

尽管我的解释很糟糕,但我希望你们都能理解我的作品。

【问题讨论】:

    标签: struts2 el tiles2


    【解决方案1】:

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

    1. 在模板jsp中:输入&lt;c:out value="${pageTitle}" default="My Title"&gt;&lt;/c:out&gt;
    2. 因此,在每个动作类中,您应该将变量 pageTitle 创建为 DYNAMIC Title。

    【讨论】:

    • @Marko - 如果您要为遇到的每一个迟到的答案投票,请至少改进需要它们的答案。这个答案需要格式化才能正确显示代码;事实上,您批准的答案毫无意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2012-02-21
    • 2019-07-25
    • 1970-01-01
    • 2019-03-10
    相关资源
    最近更新 更多