Strus 2 wildcards

3 respostas
G

alguem poderia me dar uma luz como funciona isso?

tipo o “*” é substituido pela string q retorna do metodo execute do .action? e esse parametro method="{1}" o que ele indica? ja li o tutorial do strus mais ainda n senti a essencia da coisa… alguem por favor!

3 Respostas

rodrigo_gomes

Cara, esse * será passado como parametro para method="{1}", ou seja, ele será o nome do método em sua action que será chamado.

Se você chamar Logon_validar.action, ele vai chamar o método validar() na sua action Login.

[]´s

G

clareou mais a ideia mas deixa ver se eh isso mesmo…

eu teria na minha classe Logon varios metodos onde seria substituido em "" no Logon_ o nome do metodo neh isso? tipo se eu chamar Logon_validar chama o metodo validar() da minha classe action Logon, Logon_editar chama o metodo editar() da minha classe action Logon… ok agora observa esse trecho por favor

public class Logon extends ActionSupport {

public String execute() throws Exception {

    if (isInvalid(getUsername())) return INPUT;
    if (isInvalid(getPassword())) return INPUT;
    return SUCCESS;
}

private boolean isInvalid(String value) {
    return (value == null || value.length() == 0);
}


gets and sets

o unico metodo que tenho é o execute, que tem como resposta sucess ou input e

esse é meu struts.xml

/HelloWorld.jsp
<action name="[b]Logon_*[/b]" method="{1}" class="tutorial.Logon">
   <result>Menu.jsp</result> 
   <result name="input">/Logon.jsp</result>
  
    
</action>
    
<action name="Register" >
    <result>Register.jsp</result>
</action>

<action name="Welcome" >
    <result>Welcome.jsp</result>
</action>
    

<action name="*" >
    <result>[b]/{1}.jsp[/b]</result>
</action>


<action name="*" class="tutorial.TutorialSupport">
    <result>/{1}.jsp</result>
</action>

qdo eu chamo Logon_input ou a resposta do metodo execute é input ele direciona para /Logon.jsp, qdo é sucess ele direciona para Menu.jsp,
soh q nao tem nenhum metodo imput e este é a string de retorno…
to começando agora, tu poderia esmiuçar um pouco do que ta ocorrendo ai… e esse method="{N}" on N pode ser qlquer valor de 1 a 9 neh isso? influi em que esse valor das chaves? e essa parte /{1}.jsp é a resposta do metod execute? e outra coisa eu estou chamando um action em um formulario mapeado para Logon “action=“Logon”” so que no meu strus.xml n tem nenhum mapeamento explicito para Logon, apenas Logon_*, entao quem ta mapeado para ele?

Estou perguntando muita coisa para n perguntar aos poucos, caso n tenha tempo para resopnder tudo respone aos poucos… valeu e agradeço desde já! valeu!

G

up

Criado 16 de outubro de 2007
Ultima resposta 18 de out. de 2007
Respostas 3
Participantes 2