2011-03-15 3 views
1

Salutations tous,Spring MVC 3 redirect/avant avec SiteMesh

J'utilise 3 + printemps mvc SiteMesh et de la sécurité du printemps 3. Je dois faire le scénario suivant. J'utilise 2 configurations différentes pour contourner les utilisateurs et les utilisateurs normaux. L'approche que j'ai suivie fonctionnait bien jusqu'à ce que je rencontre des popups JavaScript, car j'ai remarqué que la page se chargeait deux fois et apparaissait deux fois dans la même fenêtre. validez mon approche s'il vous plaît.

Contrôleur de

@RequestMapping(value = "/mainMenu") 
    public class PortalController { 

    @RequestMapping(method = RequestMethod.GET) 
    public String byPassPortal() { 

    if (User.bypassMenu()) { 
     //return "redirect:user.html"; 
     //return "forward:user.html"; 
     return "/user/user"; 
    } else { 
     // send user to the portal page 
     logger.debug("Redirect to the main page"); 
     return "mainMenu"; 
    } 
    } 
} 

Site décorateur de maille xml -

<decorators defaultdir="/decorators"> 
<decorator name="layout" page="layout.jsp"> 
    <pattern>/user*</pattern> 
</decorator> 
<decorator name="default" page="default.jsp"> 
    <pattern>/*</pattern> 
</decorator> 
</decorators> 

voici mes observations - si j'utilise return "redirect:user.html"; & il fonctionnait très bien avec la mise en page correcte (layout.jsp) pour les utilisateurs puisque le décorateur va l'attraper par le motif <pattern>/user*</pattern>. mais le problème est la forme chargera deux fois et j'obtiens le popup deux fois.

si je peux utiliser ou return "/user/user"; pop-up viendra une seule fois, mais la mise en page est wrong.cause devrait être que ce ne sera pas capturé du décorateur pour le modèle url <pattern>/user*</pattern> et il utilisera la configuration par défaut ce qui est faux (default.jsp).

Je pense qu'il y a quelque chose à gérer du côté du printemps et non du sitemesh. Pouvez-vous s'il vous plaît donner quelques conseils parmi cela? Merci d'avance.

+0

Bonjour à tous, j'ai trouvé le problème. Il n'y avait rien à voir avec le printemps ou sitemesh. Tout était à propos de la deuxième mise en page que j'utilisais. il contenait deux balises 'et il a été soumis deux fois par le sitemesh. J'espère que cela aidera tous ceux qui ont eu ce genre d'erreur. – Sam

Répondre

0

J'ai trouvé le problème. Il n'y avait rien à voir avec le printemps ou le sitemesh. Tout était à propos de la deuxième mise en page que j'utilisais. il contenait deux '' tags et il a été soumis deux fois par le sitemesh. J'espère que cela aidera tous ceux qui ont eu ce genre d'erreur. - Sam il ya 0 secondes edit