segunda-feira, 1 de abril de 2013

Passar parâmetros no forward da action

Existem várias formas de passar paramêtros em uma querystring. Para quem não sabe o que é uma querystring, querystring é tudo que se localiza após o ? em uma url, exemplo:

www.meusite.com.br/blablabla?minhaquerystring

A função da querystring é passar parâmetros para suas classes de servidor. Quando se constrói um sistema usando struts, às vezes é necessário passar parâmetros pelo forward no seu struts-config. Agora, você pensa, "isso é fácil" e, realmente é, segue exemplo:

<action path="/minhaAction" name="meuForm" type="caminhodaminhaaction.MinhaAction" scope="request" validate="false">
            <forward name="fwd-sucesso" path="/minhaActionForward.do?parametro1=valor" redirect="false"></forward>
</action>

Nesse exemplo, passamos só um parâmetro pelo forward da action mas, e se quisessemos passar mais ? Então você pensa, "isso também é fácil, é só por o & depois do valor do parâmetro1". Só que você está


ENGANADO

Se você fizer isso, sua aplicação vai gerar um erro dizendo que não consegue reconhecer o sinal de &. Procurando por uma solução, achei o link abaixo, que descreve a solução.

http://www.guj.com.br/java/45037-struts-parametros-via-url-no-forward-de-um-action-

A solução é simples, ao invés de por o &, ponha &amp; e construa sua querystring normalmente, segue exemplo:

<action path="/minhaAction" name="meuForm" type="caminhodaminhaaction.MinhaAction" scope="request" validate="false">
               <forward name="fwd-sucesso" path="/minhaActionForward.do?parametro1=valor&amp;parametro2=valor&amp;parametro3=valor" redirect="false"></forward>
</action>

Nenhum comentário: