2010-04-03 49 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