在struts.xml中我们可以写<action name="login" class="com.zzh.web.loginAction"></action>
通过form 中指定的login.action跟class相关联,在Struts2 convention 可以自动去找到,
默认情况下, Convention 会找到 com.opensymphony.xwork2.Action 的实现类,或制定包中以 Action 结尾的类 action
Convention 使用以下方法来搜索类路径,首先, Convention 会从根 package 中寻找包名含有 struts , struts2 , action or actions 的任意 packages 。下一部, Convention 从前一步找到的 package 以及其子 package 中寻找 com.opensymphony.xwork2.Action 的实现以及以 Action 结尾的类,下面为 Convention 寻找的类
Classes
com.example.actions.MainAction
com.example.actions.products.Display ( implements com.opensymphony.xwork2.Action)
com.example.struts.company.details.ShowCompanyDetailsAction
每一个被 Convention 找到 action 都会对应一个明确的 URL 地址, URL 以 package 的名字以及 Action 类名为基础。
首先 Convention 从根 package 以及类所在的 package 名来确定对应的 URL 中的路径( namespace )
我们也可以指定找出哪个包下的classs,只要在struts.xml中指定
<constant name="struts.convention.package.locators" value="web" />
这样这可以从web 包下找到,
如果包这样的如com.zzh.web.security.userAction
要在jsp中调用userAction只要 security/user.action 就可以了。