Struts2框架中Action类时一个单独的javabean对象,相比struts1来说,不需要去继承任何类型或实现任何借口,表单数据包含在Action中,而Struts1则必须继承org.apache.struts.action.Action或者其子类才行,相比之下,耦合度减小了许多。

对于struts2来说,在struts.xml配置是其核心内容,今天主要介绍其命名空间和其三种创建方式。

命名空间namespace

<package name="default" namespace="/" extends="struts-default">

     namespace在缺省的情况下相当于"";

三种创建方式:

方式一:创建一个POJO类

POJO(PlainOrdinary Java Object)简单的Java对象

struts.xml配置

     <!-- 使用pojo创建action --><action name="demo1" class="cn.itcast.action.Demo1Action"><result>/success.jsp</result></action>
//创建一个Action,使用pojo类
public class Demo1Action {public String execute() {return "success";}
}
  • 优点:无耦合
  • 缺点:所有功能都需要自己实现

方式二:创建一个类,实现Action接口

Action接口  com.opensymphony.xwork2.Action

struts.xml

<!-- 使用Action接口来实现action创建 --><action name="demo2" class="cn.itcast.action.Demo2Action"><result>/success.jsp</result></action>

Action:

//继承Action
public class Demo2Action implements Action {public String execute() throws Exception {
//      SUCCESS代表数据处理成功return SUCCESS;}}

优点:在Action接口中定义了请求处理方法execute,还定义了五个结果视图

  • public static final String SUCCESS ="success";  //数据处理成功(成功页面)
  • public static final String NONE ="none";  //页面不跳转  return null;效果一样
  • public static final String ERROR ="error";  //数据处理发送错误 (错误页面)
  • public static final String INPUT ="input"; //用户输入数据有误,通常用于表单数据校验(输入页面)
  • public static final String LOGIN ="login"; //主要权限认证 (登陆页面)

缺点:具体的功能还需要自己手动实现.

方式三:创建一个类,继承ActionSupport

ActionSupport    com.opensymphony.xwork2.ActionSupport

struts.xml

<!-- 使用继承Actionsupport来实现action创建 --><action name="demo3" class="cn.itcast.action.Demo3Action"method="add"><result>/success.jsp</result></action>

Action

//继承于ActionSupport
public class Demo3Action extends ActionSupport {public String add() throws Exception {System.out.println("add method");return SUCCESS;}}
  • 优点:不仅具有了Action接口中提供的功能(ActionSupport类实现了Action接口),还具有国际化参数校验错误信息设置功能
  • 缺点:耦合度高

     介于优缺点的比较,在开发的过程中我们还是使用第三种比较多,纵然耦合度高,但是由于不用着急动手去实现,我们完全可以通过其他的方法去将耦合度降低。

     三种方式都可以达到相同的目的,如果成功跳转则可将其设置的jsp页面显示出来。再此省略不计

转载于:https://www.cnblogs.com/huohuoL/p/10545503.html

Struts2框架学习Action命名空间创建方式相关推荐

  1. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  2. java之struts2的action的创建方式

    首先action是用来处理请求的, 这里struts2中的action的3中创建方式. 1.无侵入性的创建方式. 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的. ...

  3. Struts2框架学习总结(从入门到精通)

    文章目录 一.Struts2入门 struts2概述 struts2入门案例 struts2底层执行过程 struts2相关配置 struts2的核心配置文件struts.xml struts2常量配 ...

  4. Java之struts2框架学习

    About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架 其全新的S ...

  5. 框架学习系列 之Struts2框架学习总结

    1 介绍 学习和使用Struts2框架有了一段时间,这里将学习心得总结在博客的文章里面.期间也参考学习了其他优秀的文章,如有错误之处欢迎指正,转载请申明原文地址,希望大家支持,谢谢. 2 What:什 ...

  6. Struts2框架学习---ONE

    通过阅读本你将掌握:                    struts2框架的配置                    入门程序的实现:                    配置文件的加载顺序: ...

  7. Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传

    一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...

  8. Struts2框架--学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    概述: Struts2框架应用于javaee三层框架中的web层.是在Struts1和webwork基础上发张的一个全新的框架. 一.搭建一个最基本的struts2工程步骤: 1.导入基本的jar包依 ...

  9. Struts2框架学习之一:Hello World程序

    前言 Struts2框架Apache基金组织下的一个开源框架,基于MVC模式设计的Web应用开发框架.Struts 2是一个用于开发Java EE网络应用程序的开源Web应用框架,它利用并扩展了Jav ...

最新文章

  1. 张书源:大数据能力助力我实现化工智能制造 | 提升之路系列(十)
  2. 无数优秀投资人的选择——GMQ Group
  3. ubuntu远程登陆windows
  4. Flash Builder 找不到所需的 Adobe Flash Player
  5. RabbitMQ初探--用C#简单实现通信服务
  6. 国家开放大学2021春1108钢结构(本)题目
  7. IIS 7.0探索用于 Windows Vista 的 Web 服务器和更多内容
  8. Python:绘图保存时出现空白图像的解决和如何保存图片
  9. MySQL高级-SQL优化
  10. grpc框架_grpc的入门使用
  11. python 实现 pdf 书签读取、批量写入
  12. 三角形外接圆圆心计算公式
  13. 2022华为杯研赛E题草原放牧策略研究代码+思路
  14. 2021东阳高考成绩查询,2021金华市地区高考成绩排名查询,金华市高考各高中成绩喜报榜单...
  15. 【SpringBoot】文件上传(基础上传、上传文件限制、上传多个文件)
  16. python 有放回随机抽取_Python 随机抽样
  17. 云轴ZStack Cloud云建设方案腾讯政务微信应用迁移
  18. [算法总结] LCA倍增法 dfs
  19. ubuntu16.04 opencv3.3 python2.7 caffe GPU环境搭建
  20. Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。

热门文章

  1. Ubuntu 16.04设置IP、网关、DNS
  2. Android中selector的使用
  3. linux常用shell命令之目录操作命令
  4. 用C#获取硬盘序列号,CPU序列号,网卡MAC地址
  5. 数据分析方法有哪些?
  6. 废弃电器电子产品回收:需要的不仅是补贴 !
  7. Vertica集群扩容实验过程记录
  8. C#中Json字符串的各种应用类
  9. 关于IBM Lotus的JAVA代理进入jar包的说明
  10. 可侦测多种眼疾的AI 系统 对不熟悉眼科的医疗照护人员极有帮助