在struts2 struts.xml 配置中
<struts>
<package name="caixuedong" extends="struts-default" namespace="/core">
<action name="greeting" class="com.tarena.struts2.action.GreetingAction" >
<result name="success">/core/greeting.jsp </result>
</action>
</package>
</struts>
1.package中的name只是一个标识,你可以随意命名,可以用作继承用 如
<package name="struts-default" abstract="true"></package>
extends="default";
2.action中的name对应你页面中的一个action跳转,比如你页面有个表单提交: <form action="/core/greeting" /> greeting 对应struts.xml中action里的name
3.namespace是用于区分包中相同的类,如果没写,说明该包为默认空间,如果写了(如你的这个例子),那么就说明包caixuedong的空间为/core。
============================================================
调用action 中的方法
配置方法一:直接配置方法路径
<package name="user" namespace="/user" extends="struts-default">
<action name="save" class="com.puckasoft.web.action.UserAction" method="saveUser"></action>
<action name="update" class="com.puckasoft.web.action.UserAction" method="updateUser"></action>
<action name="delete" class="com.puckasoft.web.action.UserAction" method="deleteUser"></action>
<action name="show" class="com.puckasoft.web.action.UserAction" method="showUser"></action>
</package>
用户添加 /user/save.action
用户更新 /user/update.action
用户删除 /user/delete.action
用户查看 /user/show.acton
配置方法二: action动态方法调用DMI
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<action name="index" class="com.puckasoft.web.action.UserAction"/>
</package>
运行路径格式:包的命名空间/Action的名字!Action类中定义的方法名
用户添加 /user/index!saveUser.action
用户更新 /user/index!updateUser.action
用户删除 /user/index!deleteUser.action
用户查看 /user/index!showUser.acton
配置方法三:使用通配符定义Action
使用通配符,将配置量降到最低。
在action元素的name属性中可以使用*通配符,它可以匹配除了/以外的多个连续字符,在action元素的class和method属性以及 result元素中可以引用*通配符在访问期间实际匹配的内容
<package name="user" namespace="/user" extends="struts-default">
<action name="*" class="com.puckasoft.web.action.UserAction" method="{1}User"/>
</package>
运行路径路径格式: 包的命名空间/Action的名字
用户添加 /user/save.action
用户更新 /user/update.action
用户删除 /user/delete.action
用户查看 /user/show.acton