Struts2中Action的实现方式

Action的实现方式有3种,如下:

1.普通Java类(pojo),必须定义一个execute()方式,返回值为String类型,如下:

public classUserAction {

   private String name;

 

   public String getName() {

      return name;

   }

 

   public voidsetName(String name) {

      this.name = name;

   }

  

   public String execute(){

      if("zhangsan".equals(name)){

         return "success";

      }else{

         return "error";

      }

   }

 

}


2.实现Action接口,如下:

public classUsernameAction implements Action{

 

   private String name;

  

 

   public String getName() {

      return name;

   }

 

 

   public voidsetName(String name) {

      this.name = name;

   }

   @Override

   public String execute() throws Exception{

      // TODOAuto-generated method stub

      return null;

   }

}

3.继承ActionSupport类:在struts.xml中配置action时,如果没有指明处理类(即没有设置action的class属性值),那么默认使用ActionSupport类作为处理类。

public classTestAction extends ActionSupport{

   private String name;

  

   public String getName() {

      return name;

   }

 

   public voidsetName(String name) {

      this.name = name;

   }

 

   @Override

   public String execute() throws Exception{

      if("zhangsan".equals(name)){

         return "success";

      }else{

         return "error";

      }

   }

  

   @Override

   public voidvalidate() {

      if(name.length()< 4){

         //调用addFieldError()方法,会自动返回input

         this.addFieldError("no", "用户名不能少于4"); 

      }

   }

}

在struts.xml中配置:

<action name="test" class="com.study.test.TestAction">

            <result name="success">success.jsp</result>

            <result name="error">error.jsp</result>

            <!-- 对应addFieldError()方法返回的input -->

            <result name="input">no.jsp</result>

</action>

在JSP页面中获取validate()方法中this.addFieldError()传出的属性值:

当然首先得在JSP页面上方引入struts的标签库:

<%@taglib prefix="s" uri="/struts-tags"%>

然后在body中写入:

<s:fielderror>

<s:param>no</s:param>

</s:fielderror>

即可获取到传出来属性名为"no"的属性值






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值