struts 中继承ActionSupport类

理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法。

由JavaDoc可知,ActionSupport类实现了接口。

com.opensymphony.xwork2.Action。

com.opensymphony.xwork2.LoaleProvider。

com.opensymphony.xwork2.TextProvider。

com.opensymphony.xwork2.Validateable。

com.opensymphony.xwork2.ValidationAware。

com.uwyn.rife.continuations.ContinuableObject。

java.io.Searializable。

java.lang.Cloneable。

例如下例所示:

 
 
  1. public class HelloWorld extends ActionSupport {
  2. private String message;
  3. public String getMessage() {
  4. return message;
  5. }
  6. public String execute() {
  7. message = " Hello World, Now is " +
  8. DateFormat.getInstance().format( new Date());
  9. return SUCCESS;
  10. }
  11. }

然后可以配置如下映射:

 
 
  1. <package name ="ActionDemo" extends ="struts-default">
  2. <action name ="HelloWorld" class ="tutorial.HelloWorld">
  3. <result> /HelloWorld.jsp</result>
  4. </action>
  5. </package>

在默认情况下,当请求HelloWorld.do发生时,Struts 2会根据struts.xml里的Action映射集(Mapping)实例化tutoiral.HelloWorld类,并调用其execute()方法。当然,我们可以通过以下两种方法改变这种默认调用,这个功能(Feature)有点类似Struts 1中的LookupDispathAction。

在sturts.xml中新建Action,并指明其调用的方法。

访问Action时,在Action名后加上"!xxx"(xxx为方法名)。

例如我们可以在tutorial/HelloWorld.java中加入以下方法:

 
 
  1. public String aliasAction() {
  2. message ="自定义Action调用方法";
  3. return SUCCESS;
  4. }

然后可以在sturts.xml中指定method来设置请求的函数名:

 
 
  1. <action name="AliasHelloWorld" class="
  2. tutorial.HelloWorld" method="aliasAction">
  3. <result>/HelloWorld.jsp</result>
  4. </action>

也可以直接在URL地址栏中使用"!method"来设置请求的函数名:

 
 
  1. http://localhost:8080/Struts 2Test
  2. /HelloWorld!aliasAction.action

通过上面的两个例子,细心的朋友应该可能会发现classes/tutorial/HelloWorld.java中Action方法(execute和aliasAction)返回的都是SUCCESS。这个属性变量笔者并没有定义,所以大家应该会猜到它在ActionSupport或其父类中定义。没错,SUCCESS在接口com.opensymphony.xwork2.Action中定义,另外同时定义的还有ERROR、INPUT、LOGIN、NONE。

此外,笔者在配置Action时都没有为result定义名字(name),所以它们默认都为SUCCESS。值得一提的是,Struts 2.0中的result不仅仅是Struts 1.x中Forward的别名,它可以实现除Forward外的很激动人心的功能,如将Action输出到FreeMaker模板、Velocity模板、JasperReports和使用XSL转换等。这些都过result里的type(类型)属性(Attribute)定义的。另外,你还可以自定义result类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体普遍存在的一重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值