关于Struts2 convention 如何找到path

在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 struts2action  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 就可以了。

 

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