Action类和action请求

本文介绍了Struts2框架中的核心组件Action类的作用及其编写要求。Action类负责处理用户请求并决定呈现哪个视图结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      Action类:是Struts2框架的核心, 每个URL映射到特定的action,然后由对应的Action类提供处理来自用户的请求所需的处理逻辑。

      action:应用程序可以完成的每一个操作.例如: 显示一个登陆表单;把产品信息保存起来
      action还有另外两个重要的功能。 第一,action在将数据从请求传递到视图(无论是JSP还是其他类型的结果)方面起着重要作用。 第二,action必须协助框架确定哪个结果应该呈现在响应请求的视图中。

<?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.devMode" value="true" />
      <package name="helloworld" extends="struts-default">
         <action name="hello" 
            class="cn.jcq.action.HelloWorldAction"
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
            <result name="error">/AccessDenied.jsp</result>
         </action>
      </package>
</struts>

action标签中的class属性设置处理该请求的Action类


编写Action类的要求:

Action类,能够处理Struts2请求的类

    1.属性的名字必须遵守JavaBeans进行配置,也就是说对应属性要有getter和setter方法

    2.必须有一个供struts调用的方法,默认方法为execute,可以再action中通过method属性设置HTTP请求处理对应    的方法

    3.需要有一个无参构造器

    4.同一个Aciton类可以包含多个action方法,也可以通过动态调用处理方法,格式为actionName!methodName?params

    5.struts2会为每一个HTTP请求都会新建一个Action实例,Action不是单例的,是线程安全的,


Action类的编写

    在写Action类时可以通过与Servlet耦合(解耦)的方式,即通过Context上下文对象,或实现XxxAware接口来获取Servlet API,你还可以扩展ActionSupport类,该类可实现六个接口,包括Action接口


public class HelloWorldAction extends ActionSupport{
   private String name;

   public String execute() throws Exception {
      if ("SECRET".equals(name))
      {
         return SUCCESS;
      }else{
         return ERROR;  
      }
   }
   
   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜马拉雅以南

奶茶,干杯?!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值