struts2 Action如何命名才最规范、省事?

struts2 Action可以用通配符命名,想知道怎么样配置最省事,不至于写死

1、是不是跳转页面都要通过ACTION来处理?

2、本来打算用这种模式

好。大致明白了。
一个是提交到addUser.jsp的action,一个是从addUser.jsp提交到别的页面的action。
我给你重新命名一下:
name="addInfo_user" class="com.xx.UserAction" method="addInfo">
/addInfoUser.jsp

name="add_user" class="com.xx.UserAction" method="add">
/addResult.jsp

把其中的几个变化一下:
name="*_user" class="com.xx.UserAction" method="{1}">
/{1}User.jsp

name="*_user" class="com.xx.UserAction" method="{1}">
/{1}Result.jsp

你看这样行不行?
我想了一下,如果这两个action都调用同一个action中的不同的两个方法,其实你就没必要用通配符了。假如你要调用同一个action类中的不同方法的时候,这样可以用的通配符,很方便。

action命名如果有一定的规范的话,用起来是很省心的。但也不一定所有的都非得用一下action去处理,有的时候一个连接也可以啊。
来看一个例子,例如有一个CrudAction, 其中有两个方法,input 和 delete,我们定义两个action:Crud_input和Crud_delete。我们可以在struts.xml中配置如下:
xml 代码[code="java"]
[/code]
这样,当struts2遇到Crud_input时,就会自动去找Crud的input方法,当遇到Crud_delete时,就会自动去找Crud的delete方法。
见另一个例子:
xml 代码[code="java"]
[/code]
这里,当struts2解析到editCrud时,就会自动去找Crud的edit方法。
按我的理解,method="{1}"的意思就是告诉struts2去找前面*中出现的方法并执行。

又如:
xml 代码[code="java"]
name="/edit*"
class="org.apache.struts.webapp.example.Edit{1}Action">

name="failure"
path="/mainMenu.jsp"/>

path="/{1}.jsp"/>

[/code]
那么如你所说的如果是表单提交的话,想对待有不同业务的数据可以单独去处理一下嘛。

[color=red]约定优于设计原则吗![/color]

你没仔细看我给的内容。
比如说,你在xample.Crud类中有一个Crud_edit和Crud_insert两个方法,分别是用来修改和插入的。
那么你在xml中写了一个action
[code="java"]

[/code]
你在提交的时候一定会这样写Crud_edit.aciton(或者.do)和Crud_insert.action,那在执行的时候就会按照你写好的action的通配符去找,符合Crud_edit就在类中执行Crud_edit方法,符合Crud_insert就去执行Crud_insert方法。由于他们都有Crud_字符串,所以只是后面的不同,这样就可以用通配符代替。

如果提交action的name都是Crud_形式的那么这样Crud_*就行。
你说的Crud_*和Crud*似乎都能匹配Crud_edit,这样说可以。
但你想假如你提交还有一个是CrudInsert,它没有低杠,它也能匹配,只要你在action中有这个方法就行,但你想你这么写和Crud_edit之间就没有了命名的规范可言了,失去了命名的意思了。

你是在xml中有两个action啊还是在一个action类中有两个方法?
没太理解你说的两个action的含义。