`

struts2零配置之convention约定规则

阅读更多

 

搜索 Action

 

搜索 Action: 对于 Convention 插件, 它会自动搜索位于 action, actions, struts, struts2 包下的所有 Java 类, Convention 会把如下两种 Java 类当成 Acition 处理

所有实现了 Action 接口的 Java 类

所有类名以 Action 结尾的 Java 类

下面是符合 Conversion 插件的 Action 类:

org.simpleit.actions.LoginAction

org.simpleit.actions.book.Books(Books 实现了 Action 接口)

org.simpleit.action.LoginAction

org.simpleit.struts.action.book.BookAction

org.simpleti.struts2.emp.EmployeeAction

 

按约定映射命名空间

 

找到合适的 Action 类之后, Convention 插件会按约定部署这些 Action, 部署 Action 时, actions, action, struts, struts2 包会被映射为根命名空间, 而这些包下的子包则被映射成对应的命名空间:

org.simpleit.actions.LoginAction   /

org.simpleit.actions.book.Books(Books 实现了 Action 接口)  /book

org.simpleit.action.LoginAction /

org.simpleit.struts.action.book.BookAction /action/book

org.simpleti.struts2.emp.EmployeeAction /emp

 

按约定映射 Action

 

Action 的 name 属性(也就是该 Action 所要处理的 URL) 则根据该 Action 的类名映射. 映射 Action 的name 时, 遵循如下规则:

若该 Action 类名包含 Action 后缀, 将该 Action 类名的 Action 后缀去掉. 否则不作任何处理

将 Action 类名的驼峰写法转成中横线 (-) 写法: 所有字母小写, 单词之间使用 – 隔开. 

例子:

org.simpleit.actions.LoginAction    /login.action

org.simpleit.actions.book.Books(Books 实现了 Action 接口)  /book/books

org.simpleit.action.LoginAction  /login.action

org.simpleit.struts.action.book.BookAction  /action/book/book.action

org.simpleti.struts2.emp.EmployeeAction /emp/employee.action

 

按约定映射 Result

 

默认情况下, Convention 总会到 WEB 应用的 WEB-INF/content 路径下定位物理资源, 定位资源的约定是: actionUrl + resultCode suffix. 当某个逻辑视图找不到对应的视图资源时, Conversion 会自动试图使用 actionUrl 作为物理资源.

例子:

org.simpleit.actions.LoginAction    /WEB-INF/content/login.jsp 或 login-success.jsp

org.simpleit.actions.book.Books(Books 实现了 Action 接口)  /WEB-INF/content/book/books-success.jsp 或 books.jsp

org.simpleit.struts.action.book.BookAction  /WEB-INF/action/book/book-success.jsp 或 book.jsp

org.simpleti.struts2.emp.EmployeeAction /WEB-INF/content/emp/employee-success.jsp 或 employee.jsp

 

 

Action 链的约定

 

如果希望一个 Action 处理结束后不是进入视图页面, 而是进行另一个 Action 形成 Action 链. 通过 Conversion 插件则只需遵守如下三个约定即可.

第一个 Action 返回的逻辑视图字符串没有对应的视图资源

第二个 Action 与第一个 Action 处于用一个包下

第二个 Action 映射的 URL 为: firstActionUrl + resultCode。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics