boa noite galera! Eu tou criando uma agenda eletrônica usando Struts 2, onde tenho uma página de login. Ao entrar com username e password a action LoginAction verifica se exixte aquele usuário no banco de dados. Se o usuário for existente, então deve ser redirecionado para uma página onde estará a lista de contatos daquele usuário logado, além da opção de cadastrar outros contatos. Bom, minha dúvida é como passar o (username) da página de login, para a tal página de usuário, já que o método para listar os contatos deve receber como argumento o username do usuário.
Enviar parâmetros de uma página para outra usando o Struts 2
6 Respostas
Se vc quer passar de Action para outra basta colocar no struts.xml
<action name="consultarResumoFinanceiro"
class="webfinanceiro.controller.actions.ConsultarResumoFinanceiro">
...
<result name="abrePainel" type="chain">
consultarPainel
</result>
</action>
...
<action name="consultarPainel"
class="webfinanceiro.controller.actions.ConsultarGraficos">
...
</action>
E criar um método com mesmo nome na Action para a qual vc passou. (Nesse caso abrePainel)
Seria isso ???
hum, acho que é isso mesmo! Tou no trabalho agora, mas quando chegar em casa vou testar. Depois posto o resultado. Vlw!!!
rapa, naum deu certo!! Só quero poder de alguma forma ler o campo “username” da página de login, na página de contatos, pois para fazer a consulta no bd eu preciso do username. Desculpa se falo bobagens, é que tou aprendendo struts e jsp agora. Aliás, se a solução usando jsp no struts for mais simples, tbm é válido. E aí, oq mim diz?
login
<s:form action="login!checkLogin">
<s:textfield name="username" label="User"></s:textfield>
<s:password name="password" label="Password"></s:password>
<s:submit value="Entrar"></s:submit>
</s:form>
se o login for válido ele deveria passar para a página contatos chamada " home.jsp", mas nessa página eu posso cadastrar um novo contato e listar, o problema é - tanto pra listar como cadastrar contato, vou precisar do valor do textfield username lah do login para fzer as operações sql, select e insert.
essa é minha home.jsp
<body>
<h1>Agenda!</h1>
<%String username = request.getParameter("name"); %>
<center>
<div class="divs">
<table border="2" cellpadding="10" cellspacing="0" class="table">
<tr>
<td> <b>Cadastro de Contato</b>
</tr>
<tr>
<td>
<s:form action="contato!insertContato" theme="ajax">
<s:textfield name="contato.name" label="Nome" size="40"></s:textfield>
<s:textfield name="contato.email" label="E-mail" size="40"></s:textfield>
<s:password name="contato.password" label="Password" size="40"></s:password>
<s:datetimepicker name="contato.birthday" label="Birthday" theme="ajax" displayFormat="dd/MM/yyyy"></s:datetimepicker>
<s:submit value="novo" notifyTopics="listContatosTopic"></s:submit>
</s:form>
</td>
</tr>
</table>
</div>
<s:div id="contatorList" href="contato!listAll.action" listenTopics="listContatosTopic" theme="ajax" cssClass="divs"></s:div>
<div class="divs">
<s:submit value="clear" theme="ajax" align="center"></s:submit>
</div>
</center>
</body>
e aqui o meu arquivo struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts.default.xml" />
<package name="default" extends="struts-default">
<action name="login!*" method="{1}" class="br.com.jm.actions.LoginAction">
<result name="invalido">/error_login.jsp</result>
<result name="valido">/home.jsp</result>
</action>
<action name="contato!*" method="{1}" class="br.com.jm.actions.ContatoAction" >
<result name="listAll">ListUsers.jsp</result>
<result></result>
</action>
<action name="usuario!*" method="{1}" class="br.com.jm.actions.UsuarioAction" >
<result name="insertUsuario"></result>
</action>
</package>
</struts>
e por último o ContatoAction
public class ContatoAction {
private Contato contato;
private List<Contato> contatos;
HttpServlet request = (HttpServlet) ServletActionContext.getRequest();
private String username = request.getInitParameter("username");
public String listAll() throws SQLException{
contatos = ContatoDAO.getContatoList(username);
return "listAll";
}
public void insertContato() throws SQLException{
ContatoDAO.addUser(contato);
}
public final Contato getContato(){
return contato;
}
public final void setContato(Contato contato){
this.contato = contato;
}
public final List<Contato> getContatos() {
return contatos;
}
public final void setContatos(List<Contato> contatos) {
this.contatos = contatos;
}
}