struts2的action类一定要实现execte()吗?

今天在写struts2拦截器器时,忽然想到,action类一定要实现execute() 方法呢?

面我简单说下我的理解:

   这个方法最初来源于Action类中的exceute(),我们常常是继承实现Action接口的ActionSupport类,从而获得exeute方法。为啥不直接去实现Action接口呢,其实也行,只不过ActionSupport中有更多利于我们完成项目的方法,例如validate(),他可以在执行execute()之前进行校验,如果校验失败自动跳到 name=input的result中。扯远了,当重写了execute()后,可以在execute()中编写逻辑,并且默认返回success,所以result中要有对应的success否则就要报错了。

   但是总不能所有逻辑都写到一个方法中吧!当然,咱可以在action方法中写其他方法,在配置文件的action标签中写method属性,这样才能让struts2知道要执行那个方法。

   所以,不一定非要实现execte(),用自己写的方法也行,但是要指定method呀!

-------------------action类-------------------------------

package com.haha.struts_38;

import com.opensymphony.xwork2.ActionSupport;

public class AgeAction extends ActionSupport {
	private String username;
	private String age;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String age() throws Exception {
		System.out.println("校验成功");
		return "ageSuccess";
	}

}
   -------------------配置文件-------------------------------

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

<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
    <package name="hh_38"   namespace="/hh_38"  extends = "struts-default" >
         <action  name="loginAction"   class ="<span style="font-family: Arial, Helvetica, sans-serif;">com.haha.struts_38</span><span style="font-family: Arial, Helvetica, sans-serif;">.AgeAction"  method="age"></span>
  
            <result name="input">
          /login.jsp
            </result>
              <result name="ageSuccess">
           /success.jsp
            </result>
           
        </action>
    </package>


</struts>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值