Struts 1 taglib <bean:?

7 respostas
ncm

Galera é o seguinte

eu tenho duas actions que apontam para o mesmo jsp, sendo que a segunda passa um atributo via request. exemplo:

public class PrimeiraAction extends Action{

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		return mapping.findForward("sucesso");
	}
}
public class SegundaAction extends Action{

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
                                
		request.setAttribute("resposta","legal");

		return mapping.findForward("sucesso");
	}
}

O meu problema está em como escrever esse atributo na jsp somento quando ele não for nulo.
Tentei algo como o exemplo abaixo só que não deu certo. ACEITO TODAS AS SUGESTÕES.

&lt;&lt;logic:notEmpty&gt;
&lt;bean:message name="resposta"/&gt;
&lt;/logic:notEmpty&gt;

7 Respostas

fmad27

Tente usando as tags do struts.
Dá uma pesquisada no c:if

<c:if test="${resposta eq ""}">
......
</c:if>
ncm

O problema é que a empresa exige que seja a taglib do struts,
justificam com algo sobre manutenção…

Bem… de qualquer forma eu preciso que seja feito via taglib do struts.

ivandasilva

Já tentou assim:

<bean:write name="nomeDoSeuObjeto" property="nomeDoAtributoPassadoViaRequest" scope="request" />
ncm

Seguindo o raciocínio da resposta acima cheguei a tal conjunto de tags que funcionaram:

&lt;logic:notEmpty scope="request" name="resposta"&gt;
	&lt;bean:write scope="request" name="resposta"/&gt;
&lt;/logic:notEmpty&gt;

Para os próximos que tiverem tais dúvidas,
a tag

&lt;logic:notEmpty scope="request" name="resposta"&gt;

verifica de dentro do contexto da requeste existe o bean com o nome resposta,
ou seja se o seu atributo setado no action existe.
Caso exista ele faz o código interno.
E a tag

&lt;bean:write scope="request" name="resposta"/&gt;

Efetua a escrita do valor do atributo.

Valeu pela ajuda Ivan, foi bem útil, eu não tinha pensado no escopo da tag.

edilson_x

A questão não é nem o escopo, o problema foi que na sua primeira tentativa vc estava tentando pegar um message

quando deveria pegar o valor com o write

se vc tirar o

<logic:notEmpty scope=“request” name=“resposta”>

e a propriedade escopo, verá que continuará funcionando, mas por boa prática pode manter.

abs

A

Por favor, alguém pode me dizer a função do ???

abs,
André AS

ncm

Quando você põe um bean no seu escopo(request, session ou aplication), você pode acessá-lo na jsp com a tag <bean:write> da taglib do struts.
Ou seja, em palavras mais práticas. quando setar um objeto no seu request, você pode pegá-lo na jsp com essa tag.

Espero ter ajudado de alguma forma.

Criado 25 de março de 2009
Ultima resposta 24 de mar. de 2010
Respostas 7
Participantes 5