2010-10-08 10 views
2

J'ai un contrôleur de ressort où je règle un objet de session avec des variables.Spring MVC - JSTL - Attribut de session

@RequestMapping("/index.html") 
public String indexHandler(HttpSession session, 
          HttpServletRequest request,           
          HttpServletResponse response){ 

      session = request.getSession(true); 
      session.setAttribute("country","India"); 
      session.setAttribute("url", getAuthURL());//getAuthURL returns a string 

    return "tempJSP"; 
    //tempJSP is a JSP under webroot/jsps/ and this is configured in Dispatcher servlet 
} 

tempJSP.jsp

//My 2 taglibs are declared here one is core and other is format 
<c:redirect url=<%(String)session.getAttribute("url")%> //Here it fails 
+2

Vous aurez besoin de nous donner plus d'informations que de dire "Ici ça échoue". * Comment * échoue-t-il? – skaffman

Répondre

2

Il échoue parce qu'un <% %> n'imprime rien, la balise c:redirect est mal fermée et peut-être aussi parce que la valeur est entre guillemets. Vous voulez plutôt ceci:

<c:redirect url="<%= session.getAttribute("url") %>" /> 

Notez que la conversion n'est pas nécessaire. Cependant, l'utilisation de scripts à l'ancienne est discouraged depuis une décennie. Utilisez plutôt EL. Il est alors aussi facile et agréable que:

<c:redirect url="${url}" /> 
+0

Oui, vous avez raison Balu. Je ne devrais pas utiliser de scriptlets. Il y avait aussi un autre problème qui sélectionnait le bon taglib.J'ai changé de "<% @ taglib uri = 'http: //java.sun.com/jstl/core' prefix = 'c'%>" à <% @ taglib uri = 'http: //java.sun.com/jstl/core' préfixe = 'c'%> Qui a résolu le problème – sv1

+0

Le droit est avec '/ jsp' dans l'URI:' http: // java.sun.com/jsp/jstl/core'. – BalusC