E ai galera!
Duvidas com struts novamente…
Algém poderia me explicar como que eu faço pra pegar o valor de um formulário e passar como parametro pra um método que eu vou chamar em um botão?
o código do meu form é o seguinte:
<html:form action="/struts/removeAlarm.do">
<html:text property="baseTime">
<html:submit property="method" > <bean:message key="button.delete"/>
</html:submit>
</html:form>
esse é o código da minha action:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
String userName = (String) session.getAttribute("userName");
DBManagerBean bean = new DBManagerBean();
bean.removeAlarms("2004-06-30",userName);//aqui eue eu queria colocar a data passada no text
bean.setValues();
session.setAttribute("Manager", bean);
return mapping.findForward("manager");
}
o meu struts config eu não consegui colocar aqui…
eu to perdidinho, pois ainda não manjo muito (quase nada) de struts…
algém poderia dar uma força a um :newbie: ?
Pra passar os valores de um formulário strus é necessário criar um formBean com o mesmo nome do formulário e configura-lo no struts-config. Este formBean tem q ter as mesma propriedades do formulário q vc quer usar no seu caso
algo do tipo:
package pacote.pacote;
import org.apache.struts.action.ActionForm;
public class NomeDoForm extends EctionForm{
//delcarar variaveis de instancias;
//declarar getters and setters;
}
struts-config.xml
...
<form-beans>
<form-bean name="nomeDoForm" type="pacote.pacote.NomeDoForm" />
</form-beans>
Espero ter ajudado (Se estiver erroado por favor me corrijam).
Se vc quer passar os atributes para um action através de um formulário no struts, vc teria de submeter o formulário para o action.
voce pode recuperar os valores do form declarando uma instancia do form no metodo execute do action
//dentro do metodo execute
NomeDoForm nomeDoForm = (NomeDoForm) form;
Assim vc poderia acessar os valores do form atraves do getters
ou entao vou pode recuperar os atributos atraves do
request.getParameter(“nomeDoAtributo”) e assim recuperar o valor desejado
Eu acho q isso resolve seu problema’
eita ow la onde tá EctionForm vc coloca “ActionForm”
8O 8O 8O 8O 8O
fiz o que vc me falou, mas ainda não funciona…
tá dando o seguinte erro:
HTTP Status 500 - No action instance for path /struts/removeAlarm could be created
type Status report
message No action instance for path /struts/removeAlarm could be created
description The server encountered an internal error (No action instance for path /struts/removeAlarm could be created) that prevented it from fulfilling this request.
Apache Tomcat/4.1.30
o meu struts-config.xml ficou assim:
<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 1.1//EN"
“http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd ”>
<struts-config>
<data-sources />
<form-beans>
<form-bean name="saissiuserForm"
type=“br.com.liveware.portalsig.admin.cliente.web.SaissiuserForm”/>
<form-bean name="removealarmForm"
type=“br.com.liveware.portalsig.admin.dbmanager.RemoveAlarmActionForm”/>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="permissionDenied"
path="/permissionDenied.jsp"/>
</global-forwards>
<action-mappings>
<action
path="/struts/dbManagement"
parameter="method"
type="br/com/liveware/portalsig/admin/dbmanager/DBManagementAction"
name="removealarmForm"
unknown=“false"
validate=“true”>
<forward
name=“manager"
path=”/struts/dbManagement.jsp"
redirect=“false”
/>
</action>
<action
path=”/struts/removeAlarm"
parameter="method"
type="br/com/liveware/portalsig/admin/dbmanager/RemoveAlarmAction"
name=“removealarmForm"
input=”/struts/dbManagement.jsp"
unknown="false"
validate=“true”>
<forward
name=“manager"
path=”/struts/dbManagement.jsp"
redirect=“false”
/>
</action>
</action-mappings>
<controller />
</struts-config>
esse erro ocorre na hora que eu aperto o botão na minha página, a página tá sendo mostrada de boa…
Tá vamos comecar mudando o struts-config
nas declaracao “types” tira as barras e coloca pontos “.”.
e no seu HTML vc tira o “property=method” e usa um botao comum.
E recupera a data através do comando request.getParameter().
retificando “não precisa tirar o property do botao”
mudei as barras por pontos e continuou na mesma…
Eu to usando o eclipse e coloquei um breakpoit no começo da minha action, só que nem tá chamando a minha action, tá aparecendo a mensagem sem nem ao menos chamar a action…
de uma olhada no meu struts-config.xml
Tem algumas propriedades no teu arquivo que não exsitem no meu, de repente o problema pode ser o envio.
E vc verá tb q no teu arquivo tem dois fechamento de action sem as devidas aberturas.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginAlunoForm" type="br.com.faculdadejk.struts.form.LoginAlunoForm" />
<form-bean name="loginAdminForm" type="br.com.faculdadejk.struts.form.LoginAdminForm" />
<form-bean name="alteracaoForm" type="br.com.faculdadejk.struts.form.AlteracaoForm" />
<form-bean name="insereTipoForm" type="br.com.faculdadejk.struts.form.InsereTipoForm" />
<form-bean name="cadastroProcessoForm" type="br.com.faculdadejk.struts.form.CadastroProcessoForm" />
<form-bean name="pagamentoForm" type="br.com.faculdadejk.struts.form.PagamentoForm" />
</form-beans>
<global-exceptions >
</global-exceptions>
<global-forwards >
<forward
name="finalizarAluno"
path="/pages/formAlunoLogin.jsp"
redirect="true" />
<forward
name="finalizarAdmin"
path="/pages/formAdminLogin.jsp"
redirect="true" />
</global-forwards>
<action-mappings >
<action
attribute="loginAlunoForm"
input="/pages/formAlunoLogin.jsp"
name="loginAlunoForm"
path="/loginAluno"
scope="request"
type="br.com.faculdadejk.struts.action.LoginAlunoAction" >
<forward name="failure" path="/pages/formAlunoLogin.jsp" />
<forward name="success" path="/pages/entradaAluno.jsp"/>
</action>
<action
attribute="loginAdminForm"
input="/pages/formAdminLogin.jsp"
name="loginAdminForm"
path="/loginAdmin"
type="br.com.faculdadejk.struts.action.LoginAdminAction">
<forward name="success" path="/pages/entradaAdmin.jsp" />
<forward name="failure" path="/pages/formAdminLogin.jsp" />
</action>
<action path="/listaTipos" type="br.com.faculdadejk.struts.action.ListaTiposAction">
<forward name="success" path="/pages/manut.jsp" />
</action>
<action path="/recuperaDados" type="br.com.faculdadejk.struts.action.RecuperaDadosAction" >
<forward name="success" path="/pages/formAlteracao.jsp" />
</action>
<action
attribute="alteracaoForm"
input="/pages/formAlteracao.jsp"
name="alteracaoForm"
path="/alteracao"
scope="request"
type="br.com.faculdadejk.struts.action.AlteracaoAction" >
<forward name="success" path="/listaTipos.do" />
</action>
<action path="/desativaTipo" type="br.com.faculdadejk.struts.action.DesativaTipoAction" >
<forward name="success" path="/listaTipos.do" />
</action>
<action
attribute="insereTipoForm"
input="/pages/formCadastro.jsp"
name="insereTipoForm"
path="/insereTipo"
scope="request"
validate="true"
type="br.com.faculdadejk.struts.action.InsereTipoAction">
<forward name="success" path="/listaTipos.do" />
</action>
<action
attribute="cadastroProcessoForm"
name="cadastroProcessoForm"
path="/cadastroProcesso"
scope="request"
type="br.com.faculdadejk.struts.action.CadastroProcessoAction" >
<forward name="success" path="/pages/guiaPagamento.jsp" />
</action>
<action path="/detalhaProcesso" type="br.com.faculdadejk.struts.action.DetalhaProcessoAction" >
<forward name="admin" path="/pages/paginaProcesso.jsp" />
</action>
<action
attribute="pagamentoForm"
name="pagamentoForm"
path="/pagamento"
scope="request"
type="br.com.faculdadejk.struts.action.PagamentoAction"
validate="false" >
<forward name="success" path="/pages/entradaAdmin.jsp" />
</action>
<action
path="/listaAlunoAction"
type="br.com.faculdadejk.struts.action.ListaAlunoActionAction"
validate="false" >
<forward name="success" path="/pages/listaProcessoAluno.jsp" />
</action>
</action-mappings>
<controller bufferSize="4096" debug="0" />
<message-resources parameter="br.com.faculdadejk.struts.ApplicationResources" />
</struts-config>
consegui resolver meu problema!
eu simplesmente esqueci de colocar:
public class RemoveAlarmAction extends Action // esqueci do extends Action...
…
se eu tivesse colocado o código inteiro da classe e não so do método execute talvez fosse mais fácil de encontrar o erro :roll: . mas agora ta funcionando certinho!
Valew pela força Rogério!