文档章节

Convention插件-content

完美世界
 完美世界
发布于 2014/06/04 22:22
字数 512
阅读 11
收藏 0

使用Convention插件,你需要将其JAR文件放到你应用的WEB-INF/lib目录中配置例子:

<constant name=”struts.convention.default.parent.package” value=”crud-default” />
<constant name=”struts.convention.package.locators” value=”web,action” />
<constant name=”struts.convention.package.locators.basePackage” value=”com.cngba.gamemag” /> 
<constant name=”struts.convention.result.path” value=”/WEB-INF/pages” />
<constant name=”struts.convention.action.name.separator” value=”-” />

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

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

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

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

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

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

//Java代码
com.example.actions.MainAction
com.example.actions.products.Display (implements com.opensymphony.xwork2.Action)
com.example.struts.company.details.ShowCompanyDetailsAction

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

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

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

<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

当然,简单的通过默认的方式来进行配置不能完全满足实际项目的需要。所幸,convention的零配置是非常灵活的。

通过@Action注释

对如下例子:

Java代码

package com.example.web;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
    @Action(“action1″)
    public String method1() {
        return SUCCESS;
    }
    @Action(“/user/action2″)
    public String method2() {
        return SUCCESS;
    }
}
方法名 默认调用路径 默认映射路径
method1 /hello!method1.action .  /WEB-INF/content/hello.jsp
method2 /hello!method2.action.   /WEB-INF/content/hello.jsp

通过@Action注释后

方法名 @Action注释后调用路径 @Action注释 后映射路径
method1    /action1!method1.action. /WEB-INF/content/action1.jsp
method1  /user/action2!method2.action /WEB-INF/content/user/action2.jsp

 

© 著作权归作者所有

共有 人打赏支持
上一篇: CentOS-Node.js
下一篇: WebBench
完美世界
粉丝 10
博文 151
码字总数 134011
作品 0
西城
高级程序员
私信 提问
Struts2 零配置----详解

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是...

鱼北子
2012/12/25
0
1
struts2零配置(struts-Convention-plugin)

从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是...

孙斐
2011/09/04
0
0
Convention 零配置及其在springside3 mini-web中的使用

从 struts2.1 版本开始, Convention Plugin 作为替换替换 Codebehind Plugin 来实现 Struts2 的零配置。 零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转...

晨曦之光
2012/05/23
303
0
struts2 的 属性设置说明

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> ......

pan_1308
2016/10/17
20
0
struts2采用convention-plugin实现零配置

最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置。 配置文件精简了,的确是简便了开发过程,但是,我们熟悉的配置...

younchen
2014/03/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
6
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部