webwork 中action不执行execute的方法

通常我们会根据逻辑来划分action,譬如Login、Register、Search和Logout等等,这 些从逻辑语义上独立的部分都应该分别作为一个action,这一点是大家都认可的。在以上这些action的周边仍然会有一些其他附属功能,譬如在 Login之前需要做的准备工作——PreLogin;在Search之后需要作进一步搜索的SearchMore。在面对这样的功能时候,你或许会将它 们独立出来,作为一个新的action,同时也有可能想着将这些功能放到主逻辑功能当中去。如果你选择了后者,然后兴冲冲地打开IDE想往里面加方法的时 候,或许你会犯愁了:方法加了进去,该在哪里调用呢?因为在应用程序运行的时候,WebWork框架只会调用继承的execute方法,那么自己加进去的 方法呢?难道真的要在execute中调用?这不是又跟其他功能扯上关系了嘛?不要着急,且听我慢慢说来。
其实,以上说了那么多,只是想为大家勾 勒一个应用场景而已。撇开那些复杂的场景不谈,需要解决的问题实际就是:如果让框架调用execute以外的方法。了解WebWork的您应该都十分了 解:我们通常所写的action都会extend了ActionSupport类并且需要提供一个override的execute方法,然后在收到请求 之后,WebWork框架会将请求分派给不同的action,由action的execute方法来处理这个请求。这就是框架所带来的好处:更加有序地组 织代码;同时这也是一个限制。框架都会在限制与功能之间寻找一个平衡点,一个好的框架则会将这对矛盾处理得很好:有一定程度的限制,又不失灵活和强大功 能,而WebWork就是这样一个框架。正当你为无法调用execute以外的方法而懊恼的时候,你会惊喜地发现WebWork提供了一种灵活的方式,让 你只需修改一下配置文件就可以调用action中execute以外的方法,这样就不需要为一些主逻辑的周边功能而创建新的action类了,让你在设计 的时候有更多的选择。要实现框架调用action中execute以外的方法,只需要设置好action节点的method属性即可。如以下例子所示:
<action name="Login" class="com.fantasysoft.Login">
<result name="success">userProfile.jsp</result>
<result name="input">login.jsp</result>
</action>
<action name="PreLogin" class="com.fantasysoft.Login" method="preLogin">
<result name="success">login.jsp</result>
<result name="error">error.jsp</result>
</action>

以 上例子中名为PreLogin的action节点配置就会调用Login action中的preLogin方法,而不是常见的execute方法了。这里还有一个十分灵活的地方需要注意的,如果preLogin方法找不到的 话,WebWork并不会马上抛出Exception,而是进而查找doPreLogin方法(注意大小写)。这样做的原因是为了避免方法名和Java的 关键字冲突,譬如你想使用default这样的方法名,那么你在配置文件仍然可以写上method="default",然后在Java代码中,你就不能 用default做方法名了,因为default是Java的关键字。但是这并不意味着就要把配置文件中method的value给改掉,你只要把方法名 换上doDefault就行了。从这里可以看出WebWork考虑入微的一面,当然,我不赞成使用这种方式,毕竟这是以损失效率为代价的。

转载于:https://www.cnblogs.com/j3eee/archive/2009/09/08/1562605.html

OpenCV-Python实战(3)——OpenCV中绘制图形与文本 OpenCV 是一个的跨平台计算机视觉库,实现了图像处理和计算机视觉方面的很多通用算法。本文介绍了 OpenCV 提供的与绘制图形和文本相关的函数。在图形方面,我们了解了如何绘制基本图形(直线、矩形和圆形等)以及高级图形(剪裁线、箭头、椭圆和多边形)。在文本方面,我们了解了如何绘制文本以及 OpenCV 库中的所有可用字体。 阅读详情

相关推荐

langchain入门学习笔记

langchain快速入门

1731

WebWork In Action学习笔记(三) 学会配置action、result和interceptor

作者:施伟,原文出处: http://www.blogjava.net/crespo9907/archive/2007/03/10/webworkinaction_note3.html,转载请保留。      在上一篇笔记WebWork In Action学习笔记(二) WebWork方式的HelloWorld 中我们已经学会了如何构建一个简单的WebWork应用程序,除了创建几个简单的Java和

BinTime的专栏 4684

手把手教你用ArduPilot搭建低成本无人车(附APM飞控+有刷电调配置清单)

本文提供了一份基于ArduPilot开源平台搭建低成本智能无人车的详细实战指南。核心内容包括APM架构飞控的选型、双向有刷电调的兼容性配置与校准、系统连接逻辑,以及通过Mission Planner地面站进行参数调校和自主导航功能设置的完整流程,帮助爱好者快速实现从手动控制到自主行驶的跨越。

java5的博客 850

Struts Action的execute方法不执行问题

学习了SpringMVC,又想去探究一下Struts的奥秘,是否和SpringMVC有什么异同之处? 于是,动手编写了一个非常简单的demo程序,但是在写的过程中,发现页面提交的请求可以进到自己编写的action中,但就是不执行action的execute方法,搞了好久,还是没有办法解决。后来参考网上的一些资料,发现action中有两个execute重载方法,其中参数类型有所不同,不认真

Yang24146898的博客 4016

Unity3D实战:用EasyAR4.0稀疏空间地图打造AR导航应用(附完整代码)

本文详细介绍了如何使用Unity3D和EasyAR4.0的SparseSpatialMap功能构建AR导航应用。通过稀疏空间地图技术,开发者可以创建室内导航系统,解决传统GPS在室内环境中的局限性。文章包含完整代码示例,涵盖环境配置、地图构建、导航实现及性能优化等关键步骤,助力开发者快速掌握AR导航开发技巧。

t8u9v0的博客 1197

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 602

logstash报错Failed to execute action解决办法

logstash报错Failed to execute action 大部分报这个错误主要原因就是因为conf文件配置写错了 input { stdin { } jdbc { # mysql数据库连接 jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/itripdb?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC

shu2994732063的博客 6285

安卓-折叠屏平行视界适配(多厂商兼容与优先级实战)

本文详细解析了安卓折叠屏平行视界适配的现状与挑战,重点探讨了多厂商兼容性策略和优先级冲突的实战解决方案。通过对比Google的Embedding方案和国内厂商的EasyGo标准,提供了检测设备支持方案、处理优先级冲突及双方案共存的最佳实践,帮助开发者高效完成折叠屏适配。

weixin_29190169的博客 163

struts2 能进入action 不执行execute的问题

问题:之前程序带validation功能,后来把validation去掉了。结果有一天运行突然不执execute函数了。在网上搜索解决办法,各种尝试未果。 解决:正郁闷时灵机一动,是不是validation.xml文件还在呀。            1、在源码目录查找没有。            2、在classes目录查找,终于发现了罪魁祸首。删掉后运行一切正常。

厚积薄发的博客 1529

杰理外挂flash使用教程(三): 打包提示音到外部flash(2)

本教程详细介绍了提示音制作与程序配置的全流程规范。提示音制作要求包括:英文命名(8字符内)、单声道转换、标准目录结构(cpu/br23/tools/)及使用user_tone_g.bat脚本生成res.bin资源文件。程序配置需修改:1)启用NOR_FS文件系统;2)调整存储空间;3)配置外置Flash参数;4)增强下载脚本追加资源参数。测试阶段建议替换开机提示音验证功能,扩展开发可参考tone_player.c的索引播放逻辑。所有操作均配有图示说明,关键配置需修改对应头文件和脚本参数。

qq_42014563的博客 587

Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving

通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。

c_cpp_csharp的专栏 394

WebWork入门教程--创建你第一个WebWork action

WebWork入门教程--创建你第一个WebWork action摘要本文,摘录了Manning出版社出版,Patrick Lightbody 和 Jason Carreira所著《WebWork in Action》中关于怎样创建WebWork action和它的视图以及将两者柔和在一起的部分。一个action是一块代码,当特定的URL被请求时,他会被执行。Action被执行后将可视化的显示

WangPan 1966

1、世界级模拟电路设计指南

本文详细探讨了模拟电路设计的各个方面,从基础概念到实际应用,涵盖了元件选择、滤波器设计、反馈系统、噪声问题以及SPICE仿真的优缺点。文中还提供了设计实例和无计算机设计方法,旨在帮助工程师提升模拟电路设计的效率与可靠性。

s1t2u3的博客 97

webwork教程 3

Actions和Results    Actions是执行的基本单元。Action是一个在 WebWork配置之中被注册的类,来响应一个特定的请求。在Model-View-Controller(MVC)中,Actoin作为Controller的部分,JSP页面则作为:View。    下面的步骤是在WebWork中创建一个Action的可能方法:    1. 创建一个将会调用Action的

acoolboy1984的专栏 2259

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

webwork中,action 中变量的取得

Action文件:import com.opensymphony.xwork.ActionSupport; public class HelloWebWorldAction extends ActionSupport { String hello; public String getHello() { return hello; } public String execute() thr

1857

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

html webwork框架,WebWork介绍-Action篇

Action简介Action在MVC模式中担任控制部分的角色,在WebWork中使用的最多,用于接收页面参数,起到对HttpRequest判断处理作用。每个请求的动作都对应于一个相应的Action,一个Action是一个独立的工作单元和控制命令,它必需要实现XWork里的Action接口,实现Action接口的execute()方法。Action接口的代码如下:package com.opensy...

weixin_36307549的博客 587

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

浅谈WebWork--一个小白对webwork的认识

*笔者白白萌新一枚,旨在了解和记录所遇到的知识,如有问题错误欢迎指出改正* 首先什么是webwork: 1、WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架(可以说是众多web框架的老前辈之一了) 2、目前的WebWork已经被拆分成了Xwork1和WebWork2两个部分 ![在这里插入图片描述](https://bkimg....

qq_44437914的博客 3333

Webwork Action比Struts Action更方便进行单元测试

要对Action进行单元测试,如果使用struts,必须借助Web容器,运行j2ee环境,或者利用插件,比较麻烦而使用Webwork,只需简单的三步:实例化Action,用setter/getter存取数据,运行execute方法,而不需要web环境  

我的世界我的梦 1051

webwork下action的测试

使用单元测试框架JUnit对webwork的action做单元测试public void testSearch() throws Exception ...{  Map params = new HashMap();  //unit.setName("tttuu");  //设置所有需要参数  params.put("unit",unit);  params.put("locationCo

ykdsg的专栏 964

Webwork的Action Mapping相比Struts的过人之处

如果要完成一个对象的CRUD操作,在struts中有两种办法1.为每一个操作都建立一个action和路径映射2.使用dispatchAction,在struts-config.xml中使用param参数进区分,调用不同的方法这两种办法有一个共同之处,就是有多少个操作,就需要在struts-config.xml中配置多少个action但在webwork中,只需要一个action pa

我的世界我的梦 1031

WebWork-Action(动作)——用户注册实例

Action介绍 Action在MVC模式中担任控制部分的角色,在WebWork中使用的最多。每个请求的动作都对应于一个相应的Action,一个Action是一个独立的工作单元和控制命令,它必需要实现XWork里的Action接口,实现Action接口的execute()方法。Action接口的代码如下:   package com.opensymphony.xwork;   impor

TangYanShui的专栏 729

webwork工作原理简单分析

一、WebWork的框架初始化过程 利用WebWork做的项目,在服务器启动时完成WebWork的框架初始化。具体是通过 Web.xml中配置好的FilterDispatcher过滤器中的init(FilterConfig filterConfig)方法完成。 并且web.xml中配置好FilterDispatcher的映射,当用户用映射好的结尾资源请求浏览器时,FillterD

PURPLE 1354

关注WebWork(四)

关注WebWork(四)时间过得很快,《WebWork In Action》第三章的翻译工作也接近尾声了。这一章的标题是Setting up WebWork,主要讲述了与WebWork紧密相关的配置以及如何运用这些配置让我们的应...

cugenggui6065的博客 103

webwork 可以处理多个请求的Action

可以处理多个请求的Action 默认情况下,对Action的调用请求将执行Action的execute()方法,Webwork支持一个Action处理多个请求。我们可以在Action中自定义其他方法调用,例如: [code]public class TestAction extends ActionSupport { public String execute() throws ...

潜龙勿用 277

Webwork【06】Action 调用

一路走来,终于要开始 webwork 核心业务类的总结,webwork 通过对客户端传递的 web 参数重新包装,进行执行业务 Action 类,并反馈执行结果,本篇源码分析对应下图WebWork 框架流转图中红色框的地方。 1.这部分框架类关系 2.Webwork 获取和包装 web 参数 每个Web 框架或多或少的对 Web 请求参数的包装,用来拿来方便自己使用...

weixin_30289831的博客 109

webwork同一个ACTION不同操作时,域值的困惑。

webwork中,在1个ACTION内,定义了2个方法,init()用于加载JSP页面时调用(如:test!init.action,初始化JSP的一些显示初始值(例如firstString)。 用户对于JSP进行选择或输入后,点击提交,执行ACTION的另一个方法execute(),(如:test!execute.action),但是,这时在execute这个方法执行时,init...

powersite 80
上一篇: webwork入门例子
下一篇: Class.getResource()怎么使用
developer2016
博客等级 码龄10年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值