Turbine 有一个非常好的功能来帮助开发人员处理web耶面的提交数据.为了理解这一功能,你需要知道Turbine是如何处理一次提交的.
事实上,当在一个URI中只要发现有action这个变量出现,在执行所有Screen类之前会执行一个程序,我们来看下面这个例子(来自VelocitySite的Howto示例):
对于URL"http:
//www.server.com/servlet/Turbine/template/AddUser/action
/NewUser",Turbine
会首先执行一个名叫"NewUse"的Action类,在这种情况下,所有继续ActionEvent而不是Action的类都可以象如下的代码一样方便
的处理:
public class NewUser extends VelocityAction
{
public void doAdd (RunData data, Context context) throws Exception
{
// put code here to add the user to the system
context.put ("username", username );
data.setMessage("User Added!");
}
public void doPerform(RunData data, Context context) throws Exception
{
data.setMessage("Button not found!");
}
}
然后,在Html中这样写:
<input type="submit" name="eventSubmit_doAdd" value="Add User">
当Action执行的时候,将会收到一个"事件"来执行Action类中的"doAdd()"方法.这样处理最"酷"的就是你的每一种"action(操作,注:比如点击一个提交按钮等)"都可以对应到Action类中一个特定的方法.
这个新的功能并不意味着你应该把所有的操作都写到一个类里,而是假设有一个页面里面有一些和这个页面关西很紧密的操作,这时最好是把这些操作都写到同一个类里.这样可以帮助你方便的判定并处理具体哪个按钮给点击了,而不是用一些"if-else"来.
假如判定不出哪个按钮被点击了(找不到一个合适的方法执行),将会执行doPerform()方法.
因为ParameterParser把所有的"key"都变成了小写,我们必须将提交的数据里得到一个合适的方法名,比如:一个按钮名叫
eventSubmit_doDelete,提交的时候就变成了eventsubmit_dodelete,因此,我们需要通过一些命名规范来得到真正的
方法名,转换的规则是:
* 变量名(如:提交按钮)必需以"eventSubmit_"开头
* 变量名在这个前缀后必需是"do"
* 在"do"之后的第一个字母必须是大写并且其他都是小写
只要你遵循这些命名规范,在Action类中就能找到相应的方法来执行.
(注:以上规则适合turbine2.1及以前的版本,在turbine2.2及以后的版本中
eventSubmit_doMySaveMethod也是一个合法的名子,因为在2.2以后的版本里,Parameterparser不会把"key"
都变成小写,这一点在取得提交数据的时候也要注重的)
在TurbineResources.properties里有一个属性,
名叫"action.eventsubmit.needsvalue".
假如把这个属性设置成"true",那只有值不为空,并且不为0的事件才会被执行,这在一个FORM有多个不同的事件(或者说提交按钮),并且由客户端的
代码(比如javascript)提交的时候比较有用.
分享到:
相关推荐
- **发展历程**:随着项目的进展,Turbine逐渐成为一个独立的Web应用框架,其核心目标是为开发者提供一个简洁、高效的开发平台。 #### 三、Turbine架构解析 **Turbine** 的架构设计是围绕MVC模式展开的,主要包括...
Turbine是一个开源的Java Web应用程序框架,由Jakarta项目维护,致力于简化Web应用程序的开发过程。Turbine以其强大的模块化结构、灵活性以及对MVC(Model-View-Controller)模式的支持而受到开发者的青睐。 #### ...
Turbine是一个基于Servlet的Web框架,由Jakarta社区开发,旨在帮助经验丰富的Java开发者快速构建安全的Web应用程序。Turbine项目由一系列子项目构成,包括Turbine核心框架、Torque、Fulcrum、Maven、JCS和Stratum,...
Turbine是Spring Cloud的一个子项目,主要功能是聚合Hystrix Dashboard上多个Hystrix Stream的流数据,以便于统一监控和管理分布式系统中的服务状态。在微服务架构中,每个服务可能有多个实例运行,而Hystrix Stream...
这种方式使得一个Action类可以处理多个不同事件,增强了代码的复用性和可读性。 为了在Struts中实现类似功能,我们需要遵循以下步骤: 1. **约定**: 设定表单域的命名规则,比如`eventSubmit_`作为前缀,后接方法...
**Turbine** 是 Netflix 开发的另一个开源项目,它的主要作用是聚合多个 Hystrix 流,以提供整体的集群视图。在多实例环境下,各个 Hystrix 实例都会生成自己的监控数据流,Turbine 则把这些流聚合到一起,形成一个...
Simulink是MATLAB环境下的一个可视化建模工具,常用于系统动态行为的模拟,包括控制工程、信号处理、电力系统等多个领域。在风力发电领域,Simulink模型可以用来分析风力发电机的工作原理、性能特性以及控制策略。 ...
turbine-2.2.jar turbine-2.2.jar
Turbine 是一个数据聚合工具,用于合并来自多个 Hystrix 实例的数据流,提供整体视图。这在处理多实例或者集群环境时特别有用。Turbine 提供了一个聚合流(`turbine.stream`),它可以通过集群名筛选数据,从而展示...
综上所述,"Wind_Turbine_Emulator" 是一个强大的风力发电系统监控工具,它不仅涵盖了实时数据采集和处理,还具备直观的可视化展示和高精度的模拟功能。对于风电行业的研究者、工程师和运维人员来说,这是一款非常...
Turbine,作为一个相对不太为人所知的技术,是Apache软件基金会下的一个开源项目,主要用于构建高性能、高可用性的分布式应用程序。它最初是在2000年代初开发的,用于支持AOL(美国在线)的大型Web服务。尽管现在...
hystrix turbine 服务监控 服务降级
**Jakarta Turbine** 是一个用于构建应用程序的平台,而不仅仅是一个运行环境。其主要特点如下: - **100%纯Java**,支持JDK 1.3及以上版本。 - **符合J2EE规范**,基于Servlet。 - **MVC架构**:将模型、视图和...
标题中的“Wind_Turbine_Simulink_matlab_”表明这是一个关于使用MATLAB Simulink构建风力发电机模型的项目。Simulink是MATLAB的一个扩展,主要用于系统建模和仿真,尤其适用于工程和科学领域的动态系统。在这个项目...
通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的... 我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, 这个工具就是Turbine,大神必备神器,导入即用,无需更改和配置!
pdf介绍matlab/simulink中风力发电的各模块的功能和连接方式,比较实用
本项目"Matlab Simulink 风力发电机仿真模型Wind-Turbine-Model"提供了这样一个平台,使工程师和研究人员能深入理解风力发电机的工作原理并进行动态模拟。 在Matlab Simulink环境中,风力发电机模型通常由多个子...