本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:923104
建立时间:2007年5月10日




[struts2]Starting Struts2--Core Components(2) (翻译)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/10/27 13:28:58

The Package Tag: <package … />被用于配置集合,以便于共享属性,例如拦截器栈或是URL命名空间.通常它由action的配置组成,但它可以包含任何类型的配置信息.它对隔离功能的组织也非常有用,可以更进一步,将其分成不同的配置文件. 这个标签有如下属性: .name--开发人员为包指定的唯一的名称.extends--此包将扩展的包的名称;扩展包里的所有配置信息(包含action配置),在新包里都是可用的,在新的命名空间之下..namespace--命名空间提供了一个URL到包的映射.例如,两个不同的包,命名空间属性分别是"package1"和"package2",URL看起来则是"/myWebApp/package1/my.action"和"/myWebApp/package2/my.action"..abstract--如果这个属性的值为"true",这个包则是真正的配置组,并且actions的配置将不能通过包名访问.确定选择正确的父类包是非常重要的,以便一些必要的被预先配置的特征可供你使用.大多数的时候,这个父包都将是"struts-default.xml"配置文件中的"struts-default"包.然而,当你使用插件时,它将会不同.这时,你将需要从插件的文档中查换你所需要的父类包的名称. 在本章剩余的部分,将讨论包含在包标签内的配置信息. 这里还有两个额包的配置元素可以在<struts>标签内使用.它们是<bean ... />和<constant … />标签.这些标签提供了更高级的路径来重新定义框架.我们将在下一章讨论插件的时候,再来讨论这些标签的用法和配置方法.ActionsActions是大多数WEB应用框架中的基本概念,并且它们是来自用户的与HTTP相关请求的最基础的工作单元. 在Struts2中,action有两种不同的方式被使用.Single Result第一,并且是action的常用法,它完成工作,并总是返回一个结果.这种情况下,action看起来是这样的: 1500)this.width=500'>500)this.width=500'>class MyAction 500)this.width=500'>{2500)this.width=500'>500)this.width=500'>    public void String execute() throws Exception 500)this.width=500'>{3500)this.width=500'>        return "success";4500)this.width=500'>    }5500)this.width=500'>}   有几件事值得注意.第一,action类不需要扩展另一个类并且它也不需要实现任何接口.对任何人来说,这个类就是一个简单的POJO. 第二,这个类里有一个名为"execute"的方法.这个名称是一个习惯用法.如果你想使用其他的名称而不是"execute",仅仅需要更改一下action的配置文件.无论这个方法的名称是什么,它都将返回一个字符串的结果代码.Actions配置文件将匹配这个action返回的结果代码到一个特定的结果,其呈现给用户.如果需要,这个方法同样可以抛出一个异常. 简单的action的配置看起来是这样的: 1500)this.width=500'><action name="my" class="com.fdar.infoq.MyAction" >2500)this.width=500'>    <result>view.jsp</result>3500)this.width=500'></action> 属性"name"提供了执行action的URL信息,在这里,URL则是"/my.action".扩展名".action"在"struts.properties"配置文件里配置.属性"class"提供了action所执行的完整的包和类名. Multiple Results 接下来,稍微复杂,action可以根据逻辑的结果返回不同的结果.与早先使用的相似的类看起来如下:  1500)this.width=500'>500)this.width=500'>class MyAction 500)this.width=500'>{ 2500)this.width=500'>500)this.width=500'>    public void String execute() throws Exception 500)this.width=500'>{ 3500)this.width=500'>500)this.width=500'>        if( myLogicWorked() ) 500)this.width=500'>{ 4500)this.width=500'>            return "success"; 5500)this.width=500'>500)this.width=500'>        } else 500)this.width=500'>{ 6500)this.width=500'>            return "error"; 7500)this.width=500'>        } 8500)this.width=500'>    } 9500)this.width=500'>}10500)this.width=500'> 既然现在可以返回两个不同的结果,我们则需要为每种情况配置一个结果返回给用户.现在,配置将变成: 1500)this.width=500'><action name="my" class="com.fdar.infoq.MyAction" >2500)this.width=500'>    <result>view.jsp</result>3500)this.width=500'>    <result name="error">error.jsp</result>4500)this.width=500'></action> 这里为结果代码引入了一个新的"name"属性.事实上,它是始终存在的.这个值(在第一个结果配置中)如果开发者没有提供,则使用默认值"success".在上面的部分,我们看到了为action确定结果时使用常用的方法.然而,这里还有四种额外的选项可供您使用:1.action方法返回一个字符串 - 这个被返回的字符串匹配在"struts.xml"配置文件中的一个action的配置.这个在上面的例子中展示过了.2.代码被之后的插件所利用 - 当代码被之后的插件使用时,视图模版则是使用action名称和action返回的结果字符串相连接而创建的.例如,如果URL是"/adduser.action",并且action返回的是"success",此时,"/adduser-success.jsp"将被呈现组用户.更多此方面的信息请查看http://struts.apache.org/2.x/docs/codebehind-plugin.html.3.使用@Result注释 - action类可以使用@Results和@Result注释来注释多个不同的结果.Action返回的字符串需要匹配上一个注释配置结果.4.Action返回一个Result类的实例 - Action可以不需要返回一个字符串,替代的方案是返回一个配置好并可被使用的Result类的实例.


阅读全文(1515) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144803462 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号