?
Olhe sobre dispatcher ou lookupdispatcher(ação no botao)…
Se vc colocar um valor estatico no xml, quando vai ser alterado?
Ja pensou em hidden ?
Quantas soluções para ñ criar outra classe?
Qual a melhor p/ o negocio?
?
Olhe sobre dispatcher ou lookupdispatcher(ação no botao)…
Se vc colocar um valor estatico no xml, quando vai ser alterado?
Ja pensou em hidden ?
Quantas soluções para ñ criar outra classe?
Qual a melhor p/ o negocio?
Não seria mais fácil criar uma Action só??
E no JSP colocar algo como:
Saudações.
Preciso passar um parâmtero para um objeto de uma subclasse de Action que eu criei no meu projeto. Quero simplesmente passar uma dupla “nome-valor”, um par de Strings. Mas o parametro precisa ser enviado do struts-config.xml
A razão é a seguinte: na minha aplicacao eu tenho dois links que chamam uma action cada: o link “ver mensagens públicas” e o link “ver mensagens privadas”. As actions - de nomes semelhantes - chamam a mesma classe, a GetMensagensAction, que extende de Action. A diferença é que um link manda um atributo chamado “destinatario” com o valor “todos” e a outra manda o mesmo atributo, mas com o valor “usuario”. Na classe existe um mecanismo que direciona o algoritmo para determinado caminho segundo o valor do atributo “destinatario”.
Minha primeira solução foi colocar um <set-property (…) /> dentro do <action (…) > no struts-config.
Estava assim:
<action path="/verMensagensPublicas"
type="com.gmail.homemletra.GetMensagensAction">
<set-property name="destino" value="todos"/>
<forward name="adiante" path="MensagensPublicas"/>
</action>
Mas o Tomcat denunciava um NullPointerException, e agora eu acho que não deve ser usado dentro de um .
Existe alguma maneira de enviar um parâmetro para essa classe através do do struts-config? Se não, como eu faria, já que eu quero evitar ter de construir duas classes para fazer operações tão semelhantes?
Valeu.
Ola.
O conteúdo estátio do xml é estático mesmo, não deve mudar em momento algum.
A situação é que eu tenho dois links para páginas diferentes geradas com a ajuda do processamento de uma mesma classe. Ela deve receber algum valor para saber se foi instanciada por um link ou por outro.
Minha idéis inicial era justamente fazer isso no struts-config:
<action path="/verMensagensPublicas"
type="com.gmail.homemletra.GetMensagensAction">
<set-property name="destino" value="todos"/>
<forward name="adiante" path="MensagensPublicas"/>
</action>
<action path="/verMensagensPrivadas"
type="com.gmail.homemletra.GetMensagensAction">
<set-property name="destino" value="usuario"/>
<forward name="adiante" path="MensagensPublicas"/>
</action>
Na classe GetMensagensAction eu colocaria:
String destino = request.getParameter("destino");
if(destino.equals("usuario")){
destino = (String) request.getSession(false).getAttribute("nomeUsuario");
}
Ou seja, se o valor do parametro destino for “todos”, contionuará assim; mas se for “usuario”, a classe pega o nome do usuário do HttpSession. O resto da lógica é só a utilização desses nomes.
Meu problema é que não posso colocar num , e daí não sei como enviar um parâmetro para a minha classe.
Mas, agora que você falou, DispatchAction parece ser bem mais plausível.
Valeu.
Ei, java palyer. Sua solução é bem mais simples.
Obrigado.