首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2应用 - Convention插件

2012-10-08 
Struts2使用 -- Convention插件本文来自CSDN博客:http://blog.csdn.net/xiaoping8411/archive/2010/06/02/

Struts2使用 -- Convention插件

本文来自CSDN博客:

http://blog.csdn.net/xiaoping8411/archive/2010/06/02/5641575.aspx

?

1.1. 设置结果页面路径
默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如:

Xml代码:

<constant name="struts.convention.result.path" value="/WEB-INF/page" />
?

?

则将路径配置到了WEB-INF/page 下。

1.2. 设置Convention搜索包
默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。你可以通过设置struts.convention.package.locators属性来修改这个配置。如:

<constant name="struts.convention.package.locators" value="web,action" />
?

?

则定义了在项目中,包路径包含web和action的将被视为Action存在的路径来进行搜索。

Com.ustb.web.*/com.ustb.action.*都将被视为含有Action的包路径而被搜索。

接着,Convention从前一步找到的package以及其子package中寻找 com.opensymphony.xwork2.Action 的实现以及以Action结尾的类:

com.example.actions.MainAction

com.example.actions.products.Display (implements com.opensymphony.xwork2.Action)

com.example.struts.company.details.ShowCompanyDetailsAction
?

?

1.3. 命名空间
命名空间。从定义的.package.locators标示开始到包结束的部分,就是命名空间。举个例子:

Com.ustb.web.user.userAction的命名空间是:”/user”。

Com.ustb.web.user.detail.UserAction的命名空间是:”/user/detail”
?

?

1.4. Actin类名路径分割
Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割,你可以设置struts.convention.action.name.separator 如

<constant name="struts.convention.action.name.separator" value="-" />

还是举个例子:

UserAction->user? UserDetailAction ->user-detail。

结合上面的。

对于com.ustb.web.user.detail.UserDetailAction,映射的url就是/WEB-INF/content/user/detail/user-detail.jsp

1.5. 支持jsp、html、htm、vm等格式
struts支持.jsp .html .htm .vm格式的文件。

下面是actiong和结果模版的映射关系:

?

?

<constant name="struts.convention.classes.reload" value="true" />
?

?

此功能没有在所有容器中进行过测试,强力建议不要在生产环境中使用。

?

1.13.?? 扫描Action的Jar包
默认情况下,Convention 插件不会从jar文件中寻找action。如果想实现这一功能,jar文件必须被struts.convention.action.includeJars 所定义的正则 匹配到。在例子中 myjar1.jar和 myjar2.jar 将被插件检测到:

<constant

name="struts.convention.action.includeJars"

value=".*/myjar1.*?jar(!/)?,.*/myjar2*?jar(!/)?" />
?

?

提示:正则表达式只针对jar文件的路径进行匹配,而不是文件名。jar的URL应该包含jar文件的路径并以"!/"结尾。

?

?

热点排行