美文网首页
Struts2之Convention

Struts2之Convention

作者: Kylin824 | 来源:发表于2018-02-12 16:55 被阅读0次

Convention插件

作用:

Cconvention意为“约定”,借鉴了Rails的“约定优于配置”原则,使用convention后可以抛弃配置信息,只要按照约定开发Action即可,实现零配置

使用方法:

将stuts2-convention-plugin-xxx.jar文件导入到应用下的WEB-INF/lib路径即可(若出现错误,则还需导入asm-xxx.jar文件)

映射约定:

  1. Action:

    Convention会自动搜索位于action、actions、struts、struts2包下的所有java类,并将所有实现了com.opensymphony.xwork2.Action的java类或所有类名以Action结尾的java类当成Action处理

    (等同于配置acton的class属性)

  2. url(请求)与Action的映射

    对应Action的name属性,若Action类包含Action后缀,将该后缀去掉,并且将该类名的驼峰写法改为中划线写法,得到的则为对应的url

    eg:

    com.action.user.LoginAction 映射到 /user/login

    con.struts2.wage.AddUserActoon 映射到 /add-user

    (等同于配置<action.../>的的name属性)

  3. result(结果)与Action的映射

    Convention默认会到WEB-INF/content路径下按 actionName + resultcode + suffix 定位物理资源,因此将物理视图资源放于WEB-INF/content中

    eg:

    com.action.user.LoginAction 返回SUCCESS字符串时,Convention会优先寻找WEB-INF/content/user下的login-success.jsp作为视图资源

    (等同于配置action的<result.../>元素)

  4. action与action的映射

    实现Action处理结束后不是进入视图页面,而是进行另一个Action形成Action链,则约定如下:

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

    • 第二个Action与第一个Action处于同一个包下

    • 第二个Action映射的URL为:firstactionName + resultcode

    eg:

    设置第一个action类名为FirstAction,且返回“second”字符串,且content下没有first-second.jsp或first.jsp,再将第二个action类名设为FirstSecondAction,则完成映射

零配置:
Convention插件主要在于解决Action、Result的配置,使得以往要通过struts.xml的配置变得简便,但struts.xml仍然需要用来配置各种Bean配置、拦截配置等

此外,Convention还使用Annotation来管理拦截器、异常处理等信息的配置

Config Browser插件:

用于查看Struts2应用下部署了哪些Action,以及每个Action详细的映射信息

在WEB-INF/lib导入struts2-cofig-browser-plugin-xxx.jar即可使用

启动应用后,输入localhost:8080/config-browser/actionNames.action或localhost:8080/WEB应用名/config-browser/actionNames.action即可看到

相关文章

网友评论

      本文标题:Struts2之Convention

      本文链接:https://www.haomeiwen.com/subject/ibxdtftx.html