2010-04-03 5 views
0

Je suis en train de développer BBS dans le framework struts2 et tiles (2).Comment puis-je faire un titre dynamiquement?

Je veux pousser une valeur dans la classe ActionSupport et afficher la valeur dans layout.jsp des tuiles. mais je continue d'échouer à accéder à la valeur.

Je vais expliquer mes travaux pas à pas.

1) Les utilisateurs cliquent sur un lien pour afficher un article sur la page de liste. Et la classe BoardView sera appelé comme défini dans la classe 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 mettra titre dans la pile de valeur ... non?

--BoardView class--


public class BoardView extends ActionSupport 

    private String title; 

    public void Execute() throws Exception { 
     ... 
     setTitle(board.getSubject()); 
     return SUCCESS; 
    } 
    ... 
    (setter and getter of title) 

3) Comme retourne actionclass succès, il ira à la définition des tuiles nommé board.view
--struts.xml--
<action name="View_board" class="board.BoardView">
<result type="tiles">board.view</result>
</action>

4) Voici le tiles-def.xml et le problème. Je pense que la valeur de 'title' ne peut pas être extraite de la pile de valeur.
== tuiles def.xml ==
<definition name="board.view" extends="layout">
<put-attribute name="title" value="%title" />
<put-attribute name="body" value="/board/view.jsp" />
</definition>

(je ne peux pas tiret avec des étiquettes ... désolé)
Voici les layout.jsp == s ==
... <title><tiles:getAsString name="title" /></title> ...

J'ai essayé de remplacer l'attribut value par% {title}, $ title et $ {title}. Mais rien ne s'est passé. Le navigateur Web affiche simplement la chaîne elle-même ($ title).

Je ne sais pas quoi faire ... s'il vous plaît aidez-moi.

J'espère que vous comprenez tous mes travaux malgré ma mauvaise explication.

Répondre

2

Comme ma solution sur le projet actuel.

  1. dans le modèle jsp: mettre <c:out value="${pageTitle}" default="My Title"></c:out>
  2. Ainsi, dans toutes les classes d'actions, vous devez créer la pageTitle variable DYNAMIC titre.
+0

@Marko - si vous voulez augmenter vos réponses tardives, veuillez au moins améliorer celles qui en ont besoin. Cette réponse nécessite un formatage pour afficher correctement le code; Tel qu'il était, la réponse que vous avez approuvée n'avait aucun sens. – LittleBobbyTables

Questions connexes