- 浏览: 483533 次
- 性别:
- 来自: 武汉
-
文章分类
最新评论
-
excellent95:
谢楼主分享,确实是CSS图片问题
Struts2判断页面是POST方式提交还是GET方式提交 -
wangluo2:
javaBase那个包显示有问题啊pom文件那一行报错了
微信公众平台开发实战(08) 基于地理信息的服务(LBS) -
andilyliao:
jd技术这么渣也好意思出书,真是醉了
《京东技术解密》试读--十年磨一剑 -
bitray:
刘强东作序多什么,他也不会什么技术,腾讯出来帮他还不是因为腾讯 ...
《京东技术解密》试读--十年磨一剑 -
come_for_dream:
想试试搞这个
《大型分布式网站架构设计与实践》试读
Action 接口与ActionSupport 类
1. Action 接口
所在包名: com.opensymphony.xwork2 描述: public interface Action All actions may implement this interface, which exposes the execute() method. However, as of XWork 1.1, this is not required and is only here to assist users. You are free to create POJOs that honor the same contract defined by this interface without actually implementing the interface. 简单翻译: 所有的 Action 都可以实现这个接口,该接口暴露了一个 execute() 方法。 然而,在 XWork 1.1 中,这些(实现接口)不是必须的,它只是用来协助用户的。你可以自由的创建一个 POJO 来替代实现这个接口,只需要实现一个 execute() 方法,而不需要真正的实现这个接口。
代码清单 1 : Action.java
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; }
我们可以看到,Action 接口非常简单,除了定义了5 个常量以外,还声明了一个方法。要实现这个接口,只需要实现这个方法即可。
代码清单 2 : LoginAction.java
package com.coderdream.action; import com.opensymphony.xwork2.Action; public class LoginAction implements Action { private String username ; private String password ; public String getUsername() { return username ; } public void setUsername(String username) { this .username = username; } public String getPassword() { return password ; } public void setPassword(String password) { this .password = password; } public String execute() { if ("aaa" .equalsIgnoreCase(username .trim()) && "123" .equalsIgnoreCase(password .trim())) { return SUCCESS ; } else { return INPUT ; } } }
Action 中常量的简单释义:
英文注释 | 中文释义 | |
static String ERROR | The action execution was a failure. Show an error view, possibly asking the user to retry entering data. | Action执行失败。显示一个错误的视图(页面),这个页面可以要求用户再次输入相关数据。 |
static String INPUT |
The action execution require more input in
order to succeed. This result is typically used if a form handling action has
been executed so as to provide defaults for a form. The form associated with the
handler should be shown to the end user. This result is also used if the given input params are invalid, meaning the user should try providing input again. |
Action的执行成功需要更多的输入。这个结果是一个典型的结果,它表明如果一个表单通过提供默认的表单来操作一个Action。这个表单会显示给最终用户。 这个结果也用于用户输入无效,意味着用户需要再次输入。 |
static String LOGIN | The action could not execute, since the user most was not logged in. The login view should be shown. | Action不能执行,因为用户没有登录。已登录的画面会被关闭。 |
static String NONE | The action execution was successful but do not show a view. This is useful for actions that are handling the view in another fashion like redirect. | Action执行成功,但是不会显示一个视图。通常产生这种情况的原因是被其他视图重定向了。 |
static String SUCCESS | The action execution was successful. Show result view to the end user. | Action执行成功。显示结果视图(页面)给用户。 |
在struts.xml 中result 就可以直接使用Action 接口中的常量了:
代码清单 3 : struts.xml
<?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 > <package name = "loginTest" extends = "struts-default" > <action name = "login" class = "com.coderdream.action.LoginAction" > <result name = "success" >/loginSuc.jsp </result > <result name = "input" >/loginFail.jsp </result > </action > </package > </struts >
2. ActionSupport 类
public class ActionSupport extends Object implements Action , Validateable , ValidationAware , TextProvider , LocaleProvider , Serializable Provides a default implementation for the most common actions. See the documentation for all the interfaces this class implements for more detailed information. 为最常用的 Action 的提供一个默认的实现。
下面是ActionSupport 类的代码片段,从中我们可以看到该类提供了execute() 方法的空实现,直接返回success 。
代码清单 4 : ActionSupport.java
public class ActionSupport implements Action , Validateable , ValidationAware , TextProvider , LocaleProvider , Serializable { public String input() throws Exception { return INPUT ; } public String doDefault() throws Exception { return SUCCESS ; } public String execute() throws Exception { return SUCCESS ; } public void validate() { } public Object clone() throws CloneNotSupportedException { return super .clone(); } public void pause(String result) { } }
LoginAction 继承了com.opensymphony.xwork2.ActionSupport 类。 LoginAction 覆写了父类(ActionSupport )中的execute() 方法,当然也可以直接使用该类的默认实现,该默认实现返回SUCCESS ;
代码清单 5 : LoginAction.java
package com.coderdream.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { private static final long serialVersionUID = -8047473058927169093L; private String username ; private String password ; public String getUsername() { return username ; } public void setUsername(String username) { this .username = username; } public String getPassword() { return password ; } public void setPassword(String password) { this .password = password; } public String execute() { if ("aaa" .equalsIgnoreCase(username .trim()) && "123" .equalsIgnoreCase(password .trim())) { return SUCCESS ; } else { return INPUT ; } } }
3. 三种方式小结
1、 Login1Action 是POJO ,包含一个execute() 方法,返回值为String :
代码清单 1 : Login1Action.java
public String execute() { if ("aaa".equalsIgnoreCase(username.trim()) && "123".equalsIgnoreCase(password.trim())) { return "success"; } else { return "failure"; } }
返回的多个值对应与struts.xml 中配置的返回结果集对应:
代码清单 2 : struts.xml 片段
<action name="login1" class="com.coderdream.action.Login1Action"> <result name="success">/login1Suc.jsp</result> <result name="failure">/login1Fail.jsp</result> </action>
2 、Login2Action 实现了接口com.opensymphony.xwork2.Action ;
在Login2Action 和struts.xml 中可直接使用Action 中定义的常量;
代码清单 3 : Action.java
static String ERROR The action execution was a failure. 返回错误 static String INPUT The action execution require more input in order to succeed. 返回一个输入页面 static String LOGIN The action could not execute, since the user most was not logged in. 、 返回登录页面 static String NONE The action execution was successful but do not show a view. 返回空(例如在上传下载时) static String SUCCESS The action execution was successful. 返回成功页面
返回值为Action 中定义的静态常量:
代码清单 4 : Login2Action.java
public String execute() { if ("aaa".equalsIgnoreCase(username.trim()) && "123".equalsIgnoreCase(password.trim())) { return SUCCESS; } else { return INPUT; } }
struts.xml 中配置的返回结果集为静态常量对应的字符串:
代码清单 5 : struts.xml 片段
<action name="login2" class="com.coderdream.action.Login2Action"> <result name="success">/login2Suc.jsp</result> <result name="input">/login2Fail.jsp</result> </action>
3 、Login3Action 继承自
com.opensymphony.xwork2.ActionSupport
该类实现了接口com.opensymphony.xwork2.Action 接口;
(该类另外还实现了Validateable , ValidationAware, TextProvider,
LocaleProvider, Serializable 接口)
在Login3Action 的代码和struts.xml 中配置与Login2Action 一致;
4 、com.opensymphony.xwork2.ActionSupport 类有execute() 方法的实现,直接返回SUCCESS ,也就是说任何继承自ActionSupport 的类可以不覆写execute() 方法,永远返回成功。
4. 源代码
见 附件。
我的联系方式: 85337464
我的博客: http://coderdream.iteye.com
- 0201.Action接口与ActionSupport类.pdf (267.4 KB)
- 下载次数: 53
- ZB_S2_D0201.rar (11.5 KB)
- 下载次数: 27
发表评论
-
Maven Struts2 项目
2013-09-14 11:44 01、创建好Maven环境; 2、创建一个Maven工 ... -
【张冰Struts2学习笔记】0601.struts.xml配置详解之六 Action配置3 通配符
2010-11-26 15:19 2649struts.xml 配置详解之六 通配符 ... -
【张冰Struts2学习笔记】0502.struts.xml配置详解之五 Action配置2
2010-11-26 14:28 1964struts.xml 配置详解之五 Action ... -
【张冰Struts2学习笔记】0501.struts.xml配置详解之四 Action配置1
2010-11-26 13:10 1953struts.xml 配置详解之四 Action 配置 ... -
【张冰Struts2学习笔记】0403.struts.xml配置详解之三 拦截器配置
2010-11-25 19:03 3426struts.xml 配置详解之三 拦截器配置 ... -
【张冰Struts2学习笔记】0402.struts.xml配置详解之二 名称空间 包含
2010-11-25 18:59 2002struts.xml 配置详解之二 名称空间 包含 ... -
【张冰Struts2学习笔记】0401_struts.xml配置详解之一
2010-11-25 13:56 2406struts.xml 配置详解之一 Bean ... -
【张冰Struts2学习笔记】0302.Struts2的主要配置文件及优先级
2010-11-20 16:33 1735Struts2 的主要配置文件及优先级 ... -
【张冰Struts2学习笔记】0301_struts.properties 配置详解(表格版)
2010-11-17 15:23 1647注:附件pdf中有35个属性! ... -
【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法
2010-11-17 12:32 2143Struts2的三种接收用户输入的方法 ... -
【张冰Struts2学习笔记】0102_第一个Struts2实例
2010-11-14 19:17 3086基于Struts2 的简单登录项目 ... -
【张冰Struts2学习笔记】0101_Struts1与Struts2的不同点
2010-11-14 14:12 1479Struts1与Struts2的不同点 ... -
基于Struts2的Web应用程序所需要的最少类库
2010-08-30 16:17 1967Struts 2.0.11版: 文件名 ... -
Struts2判断页面是POST方式提交还是GET方式提交
2010-06-03 11:06 9220在项目开发过程中,发现有个页面会提交两次,一直没有找到原因,后 ... -
Struts2的一个问题!no found ApplicationContextAware
2009-06-15 16:39 1770问题: Caused by: java.lang.NoC ... -
struts2的select用法
2009-02-11 09:59 67341、在页面对应的Action中有typeBase属性,改变下拉 ... -
子页面刷新父窗口
2009-02-09 11:50 3177下面的例子是一个子窗体调用方法改变父窗体 主页面 cc.ht ... -
Struts2结合JavaScript控制单选框的状态
2008-12-26 11:48 2128需求: 某个页面有3种操作,新增、修改和删除,其中某个字段为只 ... -
《Struts2深入详解》笔记--第三章 由“登录开始”
2008-12-02 19:36 17741、使用领域对象来接收用户输入 【工程1:sx_ch ... -
Struts2使用经验
2008-11-27 14:35 1484、显示某个对象的某个属性值: 两种方式: ${enterpri ...
相关推荐
在"【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法"中,我们主要探讨的是如何在Struts2中有效地获取并处理用户提交的数据。以下是对这三种方法的详细解析: ### 1. 使用Action属性 Struts2的核心是...
【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...
内容概要:本文档介绍了MySQL MCP(MySQL Multi-Channel Protocol)的基本使用方法和常见案例。MySQL MCP提供高效的数据库连接池和负载均衡功能,支持读写分离、事务处理、批量操作以及连接池监控等功能。文档详细描述了如何安装和配置MySQL MCP,包括创建配置文件`mcp_config.json`,并通过多个使用案例展示了其功能。案例包括连接数据库、实现读写分离、处理事务、执行批量插入和监控连接池状态。此外,还介绍了高级用法如自定义负载均衡策略和故障转移处理,以及性能优化建议,如合理设置连接池大小、监控连接使用情况、设置合理的超时时间和使用预编译语句。; 适合人群:具备一定数据库操作基础,尤其是对MySQL有一定了解的研发人员和数据库管理员。; 使用场景及目标:①需要高效管理数据库连接的应用系统;②实现读写分离,提高数据库读取性能;③确保事务处理的完整性和一致性;④进行批量数据插入操作;⑤监控和优化连接池性能,防止连接泄漏;⑥配置自定义负载均衡策略和故障转移机制。; 其他说明:在实际应用中,用户可以根据具体需求灵活配置MySQL MCP,以优化数据库操作性能和稳定性。建议在使用过程中结合性能监控工具,定期检查连接池状态,并根据实际情况调整配置参数。
哈工大大作业论文:hello的一生
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。
Visio学习相关文档
内容概要:本文介绍了利用COMSOL软件对锂离子电池中锂枝晶的多枝晶随机扰动生长进行模拟的方法。通过相场、浓度场和电场三种物理场的综合分析,详细探讨了锂枝晶的生长过程及其对电池性能的影响。文章首先阐述了锂枝晶生长的重要性和研究背景,接着描述了模型的具体构建方法,包括参数设置、物理场定义以及模拟过程中的关键步骤。最后展示了模拟结果,并讨论了这些结果对于理解和优化锂离子电池的意义。 适合人群:从事锂离子电池研究的专业人士、材料科学家、物理学家及相关领域的研究人员。 使用场景及目标:适用于需要深入了解锂枝晶生长机理及其对电池性能影响的研究项目;旨在提高锂离子电池的安全性和使用寿命。 其他说明:文中提供的COMSOL代码示例可以帮助读者快速上手并进行相关实验验证。
因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/147962629
基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的P
内容概要:本文档详细介绍了MySQL数据库在Windows和Linux系统上的安装与配置方法。对于Windows系统,涵盖了从下载、解压、配置环境变量、编写配置文件、安装服务、初始化数据库到更改密码和授权用户的完整流程。针对Linux系统,则推荐使用Docker进行安装,包括拉取镜像、运行容器、进入容器、查看容器IP地址以及增加远程访问权限等步骤。此外,还介绍了通过命令行和图形化工具(如MySQL Workbench和Navicat)连接MySQL数据库的方法。 适合人群:适合初学者和有一定经验的数据库管理员,特别是那些需要在不同操作系统环境中部署和管理MySQL数据库的技术人员。 使用场景及目标:①帮助用户掌握MySQL在Windows和Linux(基于Docker)两种环境下的安装配置;②指导用户完成MySQL的基本操作,如用户管理、权限分配和服务启动;③提供多种连接方式,确保用户能够顺利地通过命令行或图形界面工具访问和管理MySQL数据库。 阅读建议:由于文档内容较为详尽,建议读者按照实际操作系统环境选择性阅读相关章节,并在实践中逐步理解和掌握每个步骤的具体操作。同时,对于初次接触MySQL的用户,可以先尝试简单的命令行操作,再逐步过渡到使用图形化管理工具。
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。
内容概要:本文详细介绍了基于MATLAB 2021b的AC DC混合微电网Simulink模型的设计与实现。该模型涵盖了交直流混合微电网、AC DC双向功率变换器和功率控制等关键组件。文中探讨了AC DC混合微电网的概念及其重要性,特别是在整合可再生能源方面的优势。通过Simulink建模,实现了对微电网中能量的高效管理和分配,包括对不同能源的调度、负载响应和能量存储系统的管理。此外,还讨论了模型的实际应用场景和未来的发展方向。 适合人群:从事电力系统研究、微电网设计与仿真、可再生能源集成等相关领域的研究人员和技术人员。 使用场景及目标:①用于研究和分析AC DC混合微电网的运行特性;②支持实际工程项目的规划和实施;③探索提高能源利用效率的方法。 其他说明:该模型适用于MATLAB 2021b版本,模型较大,需要较高的计算资源。
Visio学习相关文档
qlistwidget使用指南
水彩插画儿童美术教学课件素材模板
内容概要:本文探讨了利用COMSOL软件对土石混合体中孔隙渗流条件下细颗粒迁移运动的数值仿真研究。研究对象主要集中在河流、堤防等水利工程中的土石混合体,重点在于细颗粒在孔隙水流动下的侵蚀、移动和沉积现象。文中详细介绍了如何在COMSOL中构建土石混合体的几何和物理模型,设定相关参数和边界条件,进而模拟细颗粒的迁移路径及其速度。此外,还讨论了多场(如渗流场、变形场、应力场、损伤场)和多相介质(如土颗粒集合体、块石、空隙、孔隙)之间的耦合作用,以及骨架结构变形对整个系统稳定性的影响。最终,通过对仿真结果的分析,揭示了细颗粒迁移运动的基本规律,为预测和评估土石混合体的稳定性和结构安全性提供了理论支持。 适合人群:从事岩土工程、水利水电工程及相关领域的科研工作者和技术人员。 使用场景及目标:适用于需要深入了解土石混合体内部力学特性及长期性能变化的研究项目,旨在提高对复杂环境下土石混合体行为的理解,从而优化工程设计方案并确保施工质量。 其他说明:本研究不仅限于理论探讨,还包括实际应用案例分析,强调了数值仿真工具在解决现实世界问题时的重要性和实用性。
可视化大屏,大数据,毕业设计,mysql数据库
实现粒子运动切换效果 着色器的应用