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方法关联,但还需要相应的页面对应