Struts DispatchAction soh pode passar o parameter pelo url

7 respostas
hicans

Galera minha duvida eh o seguinte.
Estou tentando mudar o meu crud de 4 action para um apenas, q estende a DispatchAction.
Meu struts.config estah assim:

<action path="/ManterExame"
name=“ExameForm”
type=“com.br.ExameGeralAction”
scope=“request”
validate=“false”
parameter=“metodo”>
<forward name=“sucesso” path="/jsp/Cadastro/Exame.jsp"/>
</action>

Eu estou tentando passar o valor do metodo (parameter) soh q em tutorial que encontrei ele estah sendo passado por url:

&lt;c:url var="url" scope="page" value="/ManterExameComplementar.do"&gt; &lt;c:param name="metodo" value="deletar"/&gt; &lt;/c:url&gt; <a >Delete</a>

Soh q uma qdo chamo pelo \ManterExame.do ele me da erro, qdo coloco o jsp direto funciona.
Mas minha duvida eh se posso passar esse valor ao parameter de outra maneira. Pq acho muito ruim deixar o usario modificar o url para a acao q ele quiser digitar.
Alguem pode me ajudar
8)

7 Respostas

rodrigo_corinthians

Para se ter um controle melhor das ações vc poderia criar sua própria DispatchAction e sobrepor o método dispatchMethod para não ocorrer uma Exception de NoSuchMethodException quando a ação do user não encontrar o método na Action.

Sem mais, Rodrigo.

hicans

Tah mais como eu passo o paramentro do jsp para o parameter do struts.config???

zap
&lt;html:form action="ManterExameComplementar.do" method="post"&gt;
    &lt;html:submit property="metodo" value="deletar"/&gt;
&lt;/html:form&gt;
hicans

Obrigado. Era exatamente oq eu estava querendo, mas como naum mechi mto com web em geral, estava com essa dificuldade… q agora olhando ficou facil… mto obrigado!!!
Vlw e flw
8)

H

Fazendo input normal passando “name” no input com a variável, funciona!

<input name=nomePessoa size=40 />

Se for fazer um formulário, ajuda bastante! Principalmente se for um webdesigner a desenvolver a página!!!

hicans

O problema naum eh passar o parametro… e sim o parameter para o struts.config

hicans

Naum funcionou continuo com o mesmo problema!!!

public class ExameComplementarGeralAction extends DispatchAction{

	
	public ActionForward inclui (ActionMapping mapping,
								 ActionForm form,
								 HttpServletRequest request,
								 HttpServletResponse response$){
		
		
		
		return mapping.findForward("sucesso");
	}

Essa eh minha acao

no strust.config estah assim:

&lt;action path="/ManterExameComplementar"
                name="ExameComplementarForm"
                type="com.br.reviver.cadastro.exame.ExameComplementarGeralAction"
                scope="request"
                parameter="metodo"
                validate="false"&gt;
            &lt;forward name="sucesso" path="/jsp/Cadastro/ExameComplementar.jsp"/&gt;
        &lt;/action&gt;

jah tentei assim:

&lt;html:submit property="metodo" value="inclui"/&gt;

passar o parameter para o strusts.config

naum quero passar assim:

c:url var=&quot;url&quot; scope=&quot;page&quot; value=&quot;/ManterExameComplementar.do&quot;&gt
                &lt;c:param name="metodo" value="deletar"/&gt;
            &lt;/c:url&gt;
            <a >Delete</a>

e qdo rodo no IE ele da esse erro... alguem pode me ajudar!!!!

javax.servlet.ServletException: Request[/ManterExameComplementar] does not contain handler parameter named 'metodo'.  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.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:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.7 logs.
Criado 12 de outubro de 2006
Ultima resposta 13 de out. de 2006
Respostas 7
Participantes 4