2016-04-20 1 views
1

j'ai une méthode ci-dessous dans le thème:Fetch l'objet de session défini dans le thème de Liferay méthode Java dans la méthode portlet doView()

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)throws IOException,    ServletException { 
    ((HttpServletRequest) request).getSession().setAttribute("test", "abc"); 
    } 

je suis en train de chercher ci-dessus objet de session dans la méthode doView de portlet.

HttpSession httpSession =PortalUtil.getHttpServletRequest(renderRequest).getSession(); 
System.out.println("httpSession obj"+(String)httpSession.getAttribute("test")); 

j'ai même essayé d'utiliser comme ci-dessous:

HttpServletRequest request1 =PortalUtil.getHttpServletRequest(renderRequest); 
HttpServletRequest originalRequest = PortalUtil.getOriginalServletRequest(request1); 
HttpSession httpsession = originalRequest.getSession(); 
System.out.println("httpSession ==> " + httpsession);//session object gets printed 
System.out.println("test "+httpsession.getAttribute("test"));//null 

i obtenir la valeur NULL lorsque je tente d'extraire de méthode doView. Quelqu'un peut-il suggérer comment récupérer la valeur du thème au portail

Répondre

0

Vous obtenez seulement le portletRequest adapté à l'interface ServletRequest. En outre, vous aurez besoin de PortalUtil.getOriginalHttpServletRequest().

Here's some more information sur la différence entre les deux.

Si vous l'utilisez? Je ne peux pas imaginer ce que le thème aurait besoin d'écrire à la session. Et l'ordre d'exécution pourrait même ne pas être défini.

Que devriez-vous utiliser à la place? Je ne sais pas car je sais ce que vous essayez de réaliser en premier lieu

+0

Pouvez-vous me guider dans mon cas si je devais utiliser httpSession = PortalUtil.getOriginalHttpServletRequest() (renderRequest) .getSession(); System.out.println ("httpSession obj" + (Chaîne) httpSession.getAttribute ("test")); –

+0

Voir ma réponse éditée –

+0

le thème doit écrire la valeur de l'objet de session session.setAttribute ("test", "abc"); Comme montré ci-dessus. ordre d'exécution? cette méthode est exécutée sur la charge du thème. , j'essaye d'aller chercher ce test de valeur d'objet de session du thème à la méthode doview() du portlet. –