Pessoa, tenho uma tela com 4 link (cadastrar, deletar, alterar, pesquisar) e alguns campos. Como faço para passar via url os valores dos campos do formulario? Estou usando Struts 2.
Fiaux, pelo q eu entendi…no topico q vc me indico, o parametro q ele vai ser passao via url ja vem da Action, num é isso?
No meu caso tenho que pegar o valor q foi digitado no textfield e enviar via url.
Então você pega esse valor na action (usa uma variavel e mesmo nome na JSP e action) e da um redirect para onde você quer, passando esse parâmetro. Cria um submit para isso.
e tentei dessa outra forma
<s:url id=“url” action=“cadastroPasta.action”>
<s:param name=“pasta.valorIndice1” value=“pasta.valorIndice1”/>
</s:url>
<s:a href="%{url}">Link</s:a>
Tag struts dentro de tag struts não funciona.
Minha sugestão é que você criei um submit para seu formulário. Faça o bind de campos do formulário com atributos na action. Faça um redirect do struts para outra action e passe como parâmetro, podendo ser via annotation ou xml.
Tag struts dentro de tag struts não funciona.
Minha sugestão é que você criei um submit para seu formulário. Faça o bind de campos do formulário com atributos na action. Faça um redirect do struts para outra action e passe como parâmetro, podendo ser via annotation ou xml.
Tentei via annotation…mas acho q deve tar algo errado, pois o objeto esta indo null para a outra action…
Criei uma action FrontController responsavel por fazer os redirecionamento. Dependendo do valor do campo acao, q vem da jsp ele faz o redirecionamento
@Result( name = “cadastrar”, value = “cadastroPasta.action”, type = ServletActionRedirectResult.class, params = { “pasta.valorIndice1”, “${pasta.valorIndice1}” } )
public class FrontController extends ActionSupport
public String acao;
public String getAcao() {
return acao;
}
public void setAcao(String acao) {
this.acao = acao;
}
public String controller() {
if(acao.equalsIgnoreCase("cadastrar")) {
return "cadastrar";
}
fiaux, entendi…implementei os metodos gets…
Agora estou com um problema, pois a minha action nao esta consiguindo fazer o redirecionamento…Nao encontra o redirecionamento…Da o seguinte erro:
SEVERE: Could not find action or result
No result defined for action br.com.simple.action.FrontController and result cadastrar - action - file:/R:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/simple/WEB-INF/classes/struts.xml:74:50
segue o codigo fonte:
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>
<!-- Localização -->
<constant name="struts.locale" value="pt_BR"/>
<!-- habilita o uso de outros métodos de action internamente na classe action -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
<!-- Modo de desenvolvimento: recarrega alterações e reporta erros que poderiam ser ignorados -->
<constant name="struts.devMode" value="true" />
<!-- Define um pacote de classes. -->
<package name="simpleDefault" extends="struts-default">
<action name="action1" method="controller"
class="br.com.simple.action.FrontController">
</action>
<action name="action2" method="teste"
class="br.com.simple.action.UsuarioAction">
<result>/simple/pages/home.jsp</result>
</action>
</package>
</struts>
…o parâmetro chega a action de destino, porém no console é gerado um erro:
WARNING: Caught OgnlException while setting property ‘usuario.nome’ on type ‘org.apache.struts2.dispatcher.ServletActionRedirectResult’.
ognl.NoSuchPropertyException: org.apache.struts2.dispatcher.ServletActionRedirectResult.usuario
at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:122)
at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.getProperty(OgnlValueStack.java:58)
(…)
ja tenho na minha lib os jar commons-logging e ognl alem de outros