博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2核心配置之Action
阅读量:7029 次
发布时间:2019-06-28

本文共 1938 字,大约阅读时间需要 6 分钟。

一、实现Action类

1、POJO实现(Plain Ordinary Java Object 简单的java对象)

public class User1 {    public String execute(){        System.out.println("Action1");        return "success";    }}

  Action类不继承任何特殊类,不实现任何特殊接口,只要有一个公共的无参的构造函数(默认构造函数即可)和一个execute()方法

  execute()方法要求:public类型,返回值String,方法无参

2、实现Action接口

public class User2 implements Action {    public String execute() throws Exception {        System.out.println("Action2");        return "success";    }   }

Action接口具体代码

public interface Action {    //接口中常量字符串    public static final String SUCCESS="success";    public static final String NONE="none";    public static final String ERROR="error";    public static final String INPUT="input";    public static final String LOGIN="login";        public String execute() throws Exception;}

  常量使用:execute()中return ”success“等同于return SUCCESS

3、继承ActionSupport类

public class User3 extends ActionSupport {
   private static final long serialVersionUID=1L; @Override public String execute() throws Exception { System.out.println("Action3"); return SUCCESS; }}

  因为ActionSupport类实现了Serializable接口,所以继承的Action类需要声明变量 serialVersionUID

二、配置Action

Action元素属性

属性 说明 是否必须
name 标识Action,指定Action所处理请求的URL
class 指定Action对应的实现类
method 指定请求Action时的调用方法

 

 

 

 

 

 

 

如果没有指定class属性值,其默认值为com.opensymphony.xwork2.ActionSupport类,该类使用默认处理方法execute(),ActionSupport类中的execute()方法不会做任何处理,二十直接返回success值。

如果没有指定method属性,Action调用class的execute()方法。

三、使用通配符

/{
1}.jsp
/{
1}.jsp

在上述代码中,当客户端发送/test/ActionTest_hello.action这样的请求时,<action>元素的name属性就被设置成ActionTest_hello,method就被设置成hello;,当客户端发送/test/ActionTest_hi.action这样的请求时,<action>元素的name属性就被设置成ActionTest_hi,method就被设置成hi。

结果:

 

 

其中method的属性值中的数字1匹配表示匹配第一个*。如果定义的Action名称为*_*,class属性为action.{1},method属性值为{2}。如果Action名称设置为*,则可以匹配所有Action。

转载于:https://www.cnblogs.com/GG-Bond/p/10505805.html

你可能感兴趣的文章
记录MYSQL中SQL语句的一个坑.
查看>>
网页基础
查看>>
在Oracle中设置主键自增
查看>>
正则表达式(括号)、[中括号]、{大括号}的区别小结
查看>>
HTML基础第十讲---排版卷标
查看>>
88.NODE.JS加密模块CRYPTO常用方法介绍
查看>>
java.net.ProtocolException: Exceeded stated content-length of: '13824' bytes
查看>>
asp.net 连接 oracle10g 数据库
查看>>
C 入门 第十一节
查看>>
HTML简单的注册页面搭建
查看>>
例23:选择排序
查看>>
【06】Vue 之 组件化开发
查看>>
分类算法评价标准
查看>>
word转HTML在layuiadmin中锚点调转问题
查看>>
代码整洁之道——3、对象和数据结构
查看>>
HTML5
查看>>
[转] Express 4 中的变化
查看>>
润乾在东方通tongweb5.0上部署手册
查看>>
怎样制作爽心的 dashboard ?
查看>>
MySQL查询语句练习题(50题版)
查看>>