Galera preciso que ao abrir meu jsp meu combobox ja venha populado, fiz um metodo atualizaCombo na minha action e preciso que ao abrir o form ele va na action e faça o metodo para que assim meu combo ja esteja ativado listando o conteudo do banco que no meu caso e os estados
Como posso fazer isso?
Tentei fazer via parametro mais não deu certo
Cria na Action a consulta que você precisa no combo.
Em seguida passe isso para a session:
session.setAttribute("comboBanco",emp);
na jsp voce recupera:
<tr>
<td height="28%"><font ><b>Empresa</b></font></td>
<td>
<html:select property="idBanco" styleClass="input1">
<html:option value="0">Selecione</html:option>
<%
if(session.getAttribute("comboBanco") != null)
{
%>
<html:options collection="comboBanco" property="idBanco" labelProperty="strNomeBanco" />
<%
}
%>
</html:select>
<br><br></td>
</tr>
Cara mais para que eu possa disparar minha action ela precisa ser submitada eu estou usando o LookupDispatchAction
onde eu faço todo o mapeamento dos meus botoes para cada metodo na mesma action
por isso não sei o que fazer nessa situacao se eu tivesse como submitar minha pagina logo que ela abre chamando meu metodo esta tudo resolvido, tem como fazer isso?
como posso fazer?
Cara…você pode chamar diretamente na url a sua Action …você não pode esquecer de mapear no struts-config.
ex: http://localhost:8080/projeto/Banco.do
não necessáriamente precisa ser submitado.
Ja testei fazer isso na chamada do link e veja o erro que aparece
javax.servlet.ServletException: Request[/enderecos] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:215)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:249)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
pois para passar uma action na url preciso setar qual o metodo dela que vou querer chamar !!! Como posso fazer isso?
Já te agradecendo pela ajuda que esta me dando 
poste a sua action ai…e o trecho do seu struts-config que chama esta action
Minha action
public ActionForward atualizaCombo(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)throws Exception{
OracleDAOFactory orafactory = (OracleDAOFactory)DAOFactory.getDAOFactory(DAOFactory.ORACLE);
orafactory.createConnection();
PessoaEnderecosForm pessoaEnderecosForm = (PessoaEnderecosForm) form;
PessoaEnderecosService pessoaEnderecosService = new PessoaEnderecosService(orafactory);
PessoaEnderecos pessoaEnderecosVO = new PessoaEnderecos();
HttpSession session = request.getSession();
BeanUtils.copyProperties(pessoaEnderecosVO,pessoaEnderecosForm);
//############################################################################
//################## Action para mostrar Estados no ComboBox #################
Estado estadoVO = new Estado();
EstadoService estadoService = new EstadoService(orafactory);
ResultSet rsEstado = estadoService.selectEstado(estadoVO);
List<Estado> listaEstados = new ArrayList<Estado>();
while(rsEstado.next()){
Estado e = new Estado();
e.setNmEstado(rsEstado.getString(3));
listaEstados.add(e);
}
request.setAttribute("listaEstados", listaEstados);
orafactory.closeConnection();
return mapping.findForward(SUCCESS);
}
}
meu struts-config
<action input="/svi/corp/enderecos.jsp" name="PessoaEnderecosForm" parameter="method" path="/enderecos" scope="session" type="com.isdra.svi.imovel.web.PessoaEnderecosAction">
<forward name="success" path="/svi/corp/enderecos.jsp"/>
<forward name="fail" path="/svi/corp/enderecos.jsp"/>
</action>
- Passe o seu result set do tipo Estado em uma session e não request.
- Ao invés de mapping.findForward(SUCCESS); tente mapping.findForward(“sucess”);
- No seu struts-config é onde esta o verdadeiro problema…
Retiro o method.
<action path="/PessoaEnderecosAction" scope="request" type="com.isdra.svi.imovel.web.PessoaEnderecosAction">
<forward name="sucess" path="/svi/corp/enderecos.jsp" />
</action>
Cara se eu retirar o parameter=“method” ele não ira funcionar meus outros metodos pois eu uso o Look e seto meus botoes pelos Map entao eu preciso do parameter pois pergunto novamente tem como criar um link href=“enderecos.do?method=atualizaCombo” , algo desse tipo pois esse href que fiz nao funcionou, hehehe
[quote=diogo soares]Ja testei fazer isso na chamada do link e veja o erro que aparece
javax.servlet.ServletException: Request[/enderecos] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.
org.apache.struts.actions.DispatchAction.unspecified(DispatchAction.java:215)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:249)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
pois para passar uma action na url preciso setar qual o metodo dela que vou querer chamar !!! Como posso fazer isso?
Já te agradecendo pela ajuda que esta me dando
[/quote]
Passe o nome do método por get, e crie um método na action que carregue os dados de todas as combos e redirecione para o jsp desejado.
Ex:
minhaAction.do?method=carregarTela
[]'s
Eu passei o cara assim
http://localhost:8080/enderecos.do?method=atualizaCombo
javax.servlet.ServletException: Action[/enderecos] missing resource in key method map
org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:230)
org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:271)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:173)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:150)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)