struts2中url和action自动匹配的插件convention(约定)

来源:互联网 发布:b2b平台数据 编辑:程序博客网 时间:2024/05/16 11:30

struts2-convention-plugin插件 

Struts开始使用convention-plugin来实现struts的零配置,零配置并不是没有配置,而是通过约定大于配置的方式

1.web.xml添加struct过滤器
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

2.struct2.xml文件配置插件
<constant name="struts.convention.default.parent.package" value="crud-default"/>

默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索
<constant name="struts.convention.package.locators" value="web,action"/>

插件将在该包下面搜索Action类
<constant name="struts.convention.package.locators.basePackage" value="org.hwz.demo.action"/>

默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径
<constant name="struts.convention.result.path" value="/WEB-INF/page" />

3.convention-plugin如何通过约定大于配置的方式。

1.action类名和所在包名跟请求url匹配.
Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割
如:请求url为 doc/hello.action ,doc.HelloAction类来处理这个请求

2.action返回结果,要有一个与之相适应的页面
如:url为 doc/hello.action ,doc.HelloAction来处理这个请求,必须有一个hello.jsp的视图

note:
默认返回SUCCESS.页面名跟请求名字一样就可以
如:url为 doc/hello.action ,doc.HelloAction来处理这个请求返回ok,必须有一个hello-ok.jsp

3.@Action url跟action方法关联,但还需要相应的页面对应 
0 0