Convention插件与"约定"支持

使用Convention,必须将Struts2下的struts2-convention-plugin-*.*.*.jar复制到WEB-INF/lib路径下

 

Action的搜索和映射约定:(它会自动搜索位于action、actions、struts、struts2包下的所有java类)

 

          会把如下java类当做Action:

 

                       >所有实现了com.opensymphony.xwork2.Action的java类
                      >所有以Action结尾的java类
                           :wang.app.actions.LoginAction
                            wang.app.actions.books.getBooks    (该类实现了com.opensymphony.xwork2.Action接口)
                            wang.app.action.LoginAction
                            wang.app.struts.auction.bid.BidAction
                            wang.app.struts2.wage.hr.AddEmployeeAction

 

允许设置如下三个常量:

 

>struts.convention.exclude.packages:指定不扫描哪些包下的java类,位于这些包下的java类不会自动映射成Action

>struts.convention.package.Locators:指定某包作为根包(对于actions.wang.LoginAction类,按约定映射为/wang/login,如果该常量设为wang,则该Action将会映射为/login)

>struts.convention.action.packages:Convention除了扫描action.actions.struts.struts2包,还扫描该常量指定的一个或多个包

 

将扫描包映射为命名空间:    (会将action、actions、struts、struts2映射为根命名空间)
                :wang.app.actions.LoginAction 映射到/
                 wang.app.actions.books.GetBooks 映射到/books
                 wang.app.struts2.wage.hr.AddEmployeeAction 映射到/wage/hr

Action类名映射为Action的name属性:
                1.如果Action类型包含Action后缀,将Action后缀去掉,否则不做任何处理
                2.得到第1步的结果,将驼峰写法转换为中划线写法
                    :wang.app.actions.LoginAction 映射到/login.action
                     wang.app.actions.books.GetBooks 映射到/books/get-books.action
                      wang.app.struts2.wage.hr.AddEmployeeAction 映射到/wage/hr/add-employee.action

 

按约定映射Result:
            (Convention总会到Web应用的WEB-INF/content路径下定位物理资源,约定是:
             actionName+result+suffix,当逻辑视图找不到对应视图资源时,Convention会自动使用actionName+suffix作为视图资源,suffix指的是视图技术)
           

Action的URL返回逻辑视图名结果类型对应物理视图
/loginsuccessDispatcher\WEB-INF\content\login-success.jsp
/wang/get-booksuccessDispatcher\WEB-INF\content\wang\get-book-success.jsp


content
               |——login.jsp
               |——wang
                    |——get-book-success.jsp

 

 使用Config Browser:(可以看到每个Action详细映射信息)

 

安装该插件:    将Struts2项目的lib目录下的struts-config-browser-plugin-*.*.*.jar文件复制到WEB-INF/lib路径下
首页地址:    http://localhost:8080/应用名/config-borwser/actionNames.action

 

Action链约定:

 

Action处理后不进入试图页面,进入另一个Action,须遵守如下约定:

>第一个Action返回的逻辑视图字符串没有对应逻辑视图
>第二个Action与第一个Action处于同一个包下
>第二个Action映射的URL为:firstactionName+resultCode

例:

package org.wang.action
...
public class FirstAction extends ActionSupport
{
		...
	public String execute()
	{
		...
		return "second";
	}
}

 (WEB-INF/content下不要提供first-second.jsp或first.jsp,第二个Action类名应为FirstSecondAction)

Convention插入的相关常量:(应看Struts2官方API更佳)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值