[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Não consigo acessar meu bean [RESOLVIDO]  XML
Forum Index -> Comentários Gerais
Author Message
Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Bom dia!

Estou tendo problemas para acessar o bean que eu gravo na session com a classe BaseLoginAction.

Segue o código:

Code:
 public class LoginAction extends BaseLoginAction{
 	
 	public String execute() throws ActionException {
 		String user = input.getStringValue("username");
 		String pass = input.getStringValue("password");
 		if (user==null)
 			return ERROR;
 		if (pass==null)
 			return ERROR;		
 		
 		User us = new User();
 		us.setUsername(user);
 		us.setPassword(pass);
 		
 		setUserSession(us);
 		
 		return SUCCESS;
 	}
 }
 


Pelo o que eu entendi, eu posso colocar qualquer objeto na sessão através do setUserSession. O problema é que eu não sei como vou mostrar os atributos do meu bean na minha jsp.

Estou fazendo da seguinte forma:

Code:
 <%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw"%>
 <mtw:useI18N />
 <mtw:requiresAuthentication redir="true" />
 
 <html>
 <body>
 	<mtw:bean value="us">
 		Seu nome: <mtw:out value="username"/>
 		Sua senha: <mtw:out value="password"/>
 		
 	</mtw:bean>
 	<h2><mtw:message/></h2>
 	<h3><mtw:i18n key="BemVindo"/> from Mentawai!</h3>
 </body>
 </html>
 


Onde estou errando?

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline


Vc coloca um objeto na sessão através do setUserSession para indicar que o usuário está logado. É assim que o framework sabe que o usuário foi autenticado com sucesso.

As tags do mentawai acessam o Output da action. Logo para acessar o usuário da session vc precisa fazer uma action (ShowUser) que pega da session e coloca no output.

Sergio Oliveira

Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Entendi. Eu estava pensando em outra coisa. Já que eu passo um objeto para o setUserSession porque não passar meu bean setUserSession("meuBean",bean). Provavelmente eu vou usar pelo menos o nome de usuario em outro lugar. Seria mais uma facilidade.

Uma outra sugestão é quando nós chamarmos o método setUserSession e ele mesmo criar um objeto dentro da sua função para identificar o usuário, para evitarmos de passar mais um parametro que na verdade não vamos usar em mais lugar algum (ou vamos?). Não que isso seja doloroso, mas acho que fica mais atraente.

Seria setUserSession(); //Usuário logado.

O que acha?

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Se vc não vai usar em lugar nenhum, vc pode simplesmente fazer isso:

setUserSession("1");

Mas veja que é raro vc não usar o objeto da sessão que representa o usuário logado.

Note que vc tem a session dentro de qualquer action. Dá uma olhada na classe BaseAction. Logo vc pode trabalhar com a session nas suas actions assim:

session.setAttribute("meuBean", bean);

Para acessar a session na view, vc pode via JSTL fazer isso:

<c:out value="${action.session.meuBean}" />


Sergio Oliveira

Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Sergio,

Acho que estou me confundindo. Não consegui recuperar nada da sessão. Como vc tinha dito, as tags do mtw:bean pega o bean que está no output e joga no contexto estou certo?

Consegui fazer isso com tranquilidade:

Code:
 output.setValue("user",us);
 

Na jsp:
Code:
 <mtw:bean value="user">
 	Seu nome:  <mtw:out value="username" /> <br>
 </mtw:bean>
 

---------------------------------------------------------------
Para jogar na session eu fiz da seguinte forma:

Code:
 session.setAttribute("us",us);
 

Na jsp:
Code:
 Seu nome:  <c:out value="${action.session.us.username}" /> 
 


Eu não consigo exibir o username do bean.

Preciso fazer mais alguma coisa além disso?

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Na versão 1.0.2 a session vai estar no request, ou seja, vc poderá fazer:

${session.us.username} ao invés de ${action.session.us.username}

O seu problema provavelmente é de JSTL e não com o mentawai.

Teste se vc consegue fazer:

<c:out value="${username}" />

Onde username é algo que está no output.


Sergio Oliveira

Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Eu testei da seguinte forma:
Code:
 	<mtw:bean value="user">
 		Seu nome: <mtw:out value="username" /> <br>
 	<h2><mtw:message/></h2>
 	</mtw:bean>
 	
 	Seu nome:  <c:out value="${user}" /> <br>	
 


Aqui exibe:

Seu nome: <mtw:out value="username" />


Aqui não:

Seu nome: <c:out value="${user}" /> <br>

User é o bean que está no output.

Continua sem aparecer nada...

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Me diga se vc consegue imprimir o username com c:out

<c:out value="${username}" />


Sergio Oliveira

Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Não consigo também. Já tinha tentado antes. Eu devo estar errando alguma bobeira.

Outra coisa que estou achando estranho é que está aparecendo uns caracteres no canto superior esquerdo da jsp...

Código da jsp
Code:
 <%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw"%>
 <mtw:useI18N />
 
 <html>
 <body>
 	<mtw:bean value="user">
 		Seu nome: <mtw:out value="username" /> <br>
 	<h2><mtw:message/></h2>
 	</mtw:bean>
 	
 	Seu nome:  <c:out value="${username}" /> <br>		
 	
 	<h3><mtw:i18n key="BemVindo"/> from Mentawai!</h3>
 </body>
 </html>
 


A saida da jsp:

 Seu nome: FGFG
Seu nome:
Bem Vindo! from Mentawai!
---------------------------------
Não faço idéia de onde estou errando...

Glaucio Guerra
saoj



Joined: 01/07/2005 09:59:17
Messages: 2846
Location: Rio de Janeiro, RJ
Offline

Tu tem que procurar no Google ou no Guj como usar JSTL

Basicamente vc precisa ter os jars no lib e importar corretamente.

Vai no GUJ e procura lá JSTL.


Sergio Oliveira

Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Estou utilizando a versão jakarta-taglibs-standard-1.1.2. Os .jar estão na pasta lib do WEB-INF e as tlds em WEB-INF/tld configurados no web.xml. Continua sem exibir nada.

No inicio estava exibindo ${username}. Depois fuçando no guj eu descobri que precisava do <%@ page isELIgnored="false" %> para funcionar. Então continuou sem exibir nada.

De qualquer forma agradeço a força! Com certeza é problema na jstl. Vou dar mais uma pesquisada.


Glaucio Guerra
Glaucio


[Avatar]

Joined: 20/07/2005 08:22:57
Messages: 52
Offline

Consegui! Está funcionando.

Vou descrever aqui como eu resolvi o problema.

Coloquei os .tlds na pasta WEB-INF/tld (lembrando que tem que configurar isso no seu web.xml)

Copiei os .jar da jakarta-taglibs-standard-1.1.2 para WEB-INF/lib

Adicionei <%@ page isELIgnored="false" %> porque simplesmente ele não interpretava nada (ficava ${username} na jsp)

Utilizei o import <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

E por fim eu estava misturando a tag do Mentawai com a jstl.

Code:
 <%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <%@ page isELIgnored="false" %>
 <mtw:useI18N />
 
 <html>
 <body>
 	<mtw:bean value="user">
 		Seu nome: <mtw:out value="username" /> <br>
 	<h2><mtw:message/></h2>
 	</mtw:bean>
 
           Seu nome:  ${user.username} <br>		
 	
 	<h3><mtw:i18n key="BemVindo"/> from Mentawai!</h3>
 </body>
 </html> 
 


Dessa forma só exibia o conteudo da tag do mentawai. Depois de retirado ficou:
Code:
 <%@ taglib uri="/WEB-INF/lib/mentawai.jar" prefix="mtw"%>
 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 <%@ page isELIgnored="false" %>
 <mtw:useI18N />
 
 <html>
 <body>
 	Seu nome:  ${user.username} <br>		
 	
 	<h3><mtw:i18n key="BemVindo"/> from Mentawai!</h3>
 </body>
 </html>
 


Funcionou blz!

Glaucio Guerra
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team