我正在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)。
我不知道该怎么办...请帮帮我。
尽管我的解释不好,但我希望你们都理解我的作品。
答案 0 :(得分:2)
作为我对当前项目的解决方案。
<c:out value="${pageTitle}" default="My Title"></c:out>