Action的书写方式和配置方式

三、Action访问环节

Action 有三种书写方式

Action 有三种配置方式

1、Action三种书写方式

第一种 用户定义Action类,可以不去实现任何接口,继承任何父类

第二种 用户定义Action类,实现Struts2 提供Action接口 (更规范 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"; 当参数非法,校验失败,返回input页面

public static final String LOGIN = "login"; Action需要登录才能访问,跳转login页面

开发时,将以上五个值 称为逻辑视图 ,需要在struts.xml 中通过<result> 标签为每个逻辑视图,配置物理视图(真实页面文件路径)

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

public String execute() throws Exception;

第三种 用户定义Action类,可以继承ActionSupport 基类

validate方法 提供用于对请求参数 合法性校验

addActionError 方法 添加一个Action错误信息

addFieldError 方法 添加一个表单字段错误信息

getText方法 获得国际化配置信息

******* 实际开发中,用户定义Action类,通常继承ActionSupport 类

2、指定Action 执行哪个方法

1) 通过method属性 指定Action 调用方法 名称 (不写method 默认调用Action的execute方法)

<a href="${pageContext.request.contextPath }/addbook.action">添加图书</a> <br/>

<a href="${pageContext.request.contextPath }/updatebook.action">修改图书</a> <br/>

<action name="addbook" class="cn.itcast.struts2.demo3.BookAction" method="add"></action>

<action name="updatebook" class="cn.itcast.struts2.demo3.BookAction" method="update"></action>

结论:通过method属性,配置不同请求路径 访问同一个Action的不同方法

2) 设置统配符 * , 设置通配符 <action name="*book" class="cn.itcast.struts2.demo3.BookAction" method="{1}"></action>

3)使用动态方法调用 ,必须设置常量 struts.enable.DynamicMethodInvocation = true

在访问Action名称后 "!方法名" 进行动态方法调用

${pageContext.request.contextPath }/curd.action ------ 执行CURDAction中execute方法

${pageContext.request.contextPath }/curd!add.action ---- 执行CURDAction中 add方法

${pageContext.request.contextPath }/curd!delete.action ---- 执行CURDAction 中delete方法

3、 Action配置 默认Action和默认Class

<default-action-ref name="default"></default-action-ref> 默认Action  ---- <action name=""> 没有找到匹配元素

<default-class-ref class="cn.itcast.struts2.demo5.DefaultClass"></default-class-ref> 默认处理类  找到<action name="" > 没有配置class属性

4、关于Action 的访问配置 三种方式  ---- 如何找到Action

第一种 struts.xml  <action name="" class="" /> 访问name 找到class

第二种 Conversion 约定书写 无需struts.xml 无需Annotation 注解

第三种 Annotation 注解配置 Struts2 Action

--------------------------------------------------------------------------------------------------------------------------------

四 Convension 零配置

将struts2_blank下 11 jar 复制工程, 复制 struts2-convention-plugin-2.3.7.jar  总共12个

插件会自动搜索action、actions、struts、struts2包下所有Java类

1)所有实现了com.opensymphony.xwork2.Action的Java类

2)所有类名以Action结尾的Java类

<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/> 指定哪些包会被搜索,找Action

<constant name="struts.convention.exclude.packages" value="org.apache.struts.*,org.apache.struts2.*,org.springframework.web.struts.*,org.springframework.web.struts2.*,org.hibernate.*"/> 哪些包不会被搜索

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/> 结果页面路径

下面Action 都符合 搜索要求

cn.itcast.struts2.HelloAction

cn.itcast.actions.books.BookSearchAction

cn.itcast.struts.user.UserAction

cn.itcast.estore.action.test.LoginAction

约定写法

cn.itcast.struts2.HelloAction 映射到 /hello.action

cn.itcast.actions.books.BookSearchAction  映射到 /books/book-search.action

cn.itcast.struts.user.UserAction 映射到 /user/user.action

cn.itcast.estore.action.test.LoginAction 映射到 /test/login.action

练习 : action.aaa.GetDataAction  翻译 /aaa/get-data.action

web.xml 还是需要配置的, 只要配置Filter,请求才能进入struts2 框架

结果页面,必须配置 struts.convention.result.path 所指定目录中

访问cn.itcast.struts.user.UserAction返回success

Convention优先使用 WEB-INF/content/user/user-success.jsp

如果user-success.jsp不存在,会使用user-success.html

如果user-success.html不存在,会使用user.jsp

五、安装ConfigBrowser插件,通过该插件查看Action 的加载信息

struts2-config-browser-plugin-2.3.7.jar 复制工程/WEB-INF/lib

访问 http://localhost:8080/工程名/config-browser/index.action

时间: 2024-07-30 19:13:24

Action的书写方式和配置方式的相关文章

Spring中的AOP注解方式和配置方式

今天学习了下spring中的切面编程:结合之前看过的视频.整合一下思路: 基本类: 接口: public interface ArithmeticCalculator { int add(int i, int j); int sub(int i, int j); int mul(int i, int j); int div(int i, int j); } 接口的实现: import org.springframework.stereotype.Component; @Component("ar

struts2简单入门-Action的三种配置方式

普通的配置方式 优点:可读性高 缺点:重复的配置太多. 使用情况 一个actian只有一个方法,只需要处理一种请求. 代码演示 1 <action name="voteResult" class="com.vot.action.VoteResultAction"> 2 <result name="success">VoteResult.jsp</result> 3 </action> 动态方法调用D

DUBBO配置方式详解

DUBBO 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点. Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载. 根据 DUBBO 官方文档,配置 DUBBO 有 4 种方式,分别

[转载,感觉写的非常详细]DUBBO配置方式详解

[转载,感觉写的非常详细]DUBBO配置方式详解 原文链接:http://www.cnblogs.com/chanshuyi/p/5144288.html DUBBO 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点. Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Sp

转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml.ActionClassName为action的简单类名,-validation为固定写法.如果Action类为cn.validate.acti

java 定时器的几种实现方式以及 配置参数的说明

2.java中常见的定时器 1)借助Java.util.Timer来实现 2)OpenSymphony社区提供的Quartz来实现 3.介绍Timer 利用Timer开发定时任务是主要分为两个步骤: 1)创建定时任务类 示例代码: package org.lzstone.action import java.util.TimeTask public class LzstoneTimeTask extends TimeTask{ public void run(){ //执行的定时器任务 } }

Spring 中使用XML配置方式和使用注解方式实现DI

Spring容器给我们提供了很好的环境,我们只关注主要业务即可,其他的无需关注太多.今天刚学的DI DI(Dependency Injection):依赖注入 使用XML配置文件完成依赖注入 1.1普通属性的注入 创建实体类: package cn.spring.entity; import java.io.Serializable; /** * Created by accp on 2017/3/23. */ public class User implements Serializable

SSH整合(配置方式)

工程目录: /SSH1/src/cn/itcast/domain/Book.java package cn.itcast.domain; /** * 图书 */ public class Book { private Integer id; // 图书编号 private String name; // 图书名称 private Double price; // 图书价格 public Integer getId() { return id; } public void setId(Intege

struts2中两种validation.xml的配置方式_百度文库

在struts中,根据配置的validation.xml文件进行页面输入项目的验证已经众所周知,本文介绍在struts2中两种validation.xml的配置方式.可以根据不同的需要进行不同的配置. 以下以login页面输入firstname,lastname,和age为例进行说明.struts.xml中,成功的话转向成功页面.不成功的话转回到原页面. 首先建立userbean文件.文件名:UserBean.java包:struts2.login.bean文件内容:package struts