struts2一般流程

表单提交后转到struts.xml,在struts.xml中搜索与表单中action一样的action名字,并转到相应的class,然后根据表单中textfield等等的name,调用相应的set,在调用set的时候,如果形参是自定义类的话,会调用相应的转换文件,如果是内置类的话,struts2会自动帮你完成转换.此时是从客户端到服务器是String到AnyType.

下面有2种情况:
<-
(1).如果struts.xml中对应的action中没有设置method方法.则然后调用validate方法,如果在validate中的addFieldError或者addActionError被执行了,则返回String-"input",execute方法不会被执行.如果两个都没被执行过则调用execute方法,execute返回一个String.

(2).如果struts.xml中对应的action中设置了method方法(如method="abc"),则会执行action里的validateAbc(如果有的话),然后执行validate,
也就是说validate一定会被执行,如果addFieldError或者addActionError方法其中一个执行过了,则会返回String-"input",如果都没有执行,然后执行abc返回一String,execute不会被执行.
->
然后转到struts.xml,找回刚才的action,根据返回的String,对应相应的result的name,到相应的页面.页面中的如<s:property value="point"/>,struts2会根据value调用action中的get方法,如这里就会调用getPoint,如果方法返回的值是自定义类的话,会调用相应的转换文件,如果是内置类的话,struts2会自动完成转换,此时是从服务器到客户端是AnyType到String.

Finished!

 

你可能感兴趣的:(xml,struts)