选择显示字体大小

turbine howto 之 action event [译]

这是翻译的turbine的一篇文档,howto系列的action event,第一次翻译,比较短的一篇,如果有不大通顺的地方,情告诉我,原文地址http: //jakarta.apache.org/turbine/turbine-2.3/howto/action-event-howto.html

action events

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=&quot;submit&quot; name=&quot;eventsubmit_doadd&quot; value=&quot;add user&quot;>

当action执行的时候,将会收到一个&quot;事件&quot;来执行action类中的&quot;doadd()&quot;方法.这样处理最&quot;酷&quot;的就是你的每一种&quot;action(操作,注:比如点击一个提交按钮等)&quot;都可以对应到action类中一个特定的方法.

这个新的功能并不意味着你应该把所有的操作都写到一个类里,而是假设有一个页面里面有一些和这个页面关西很紧密的操作,这时最好是把这些操作都写到同一个类里.这样可以帮助你方便的判断并处理具体哪个按钮给点击了,而不是用一些&quot;if-else&quot;来.

如果判断不出哪个按钮被点击了(找不到一个合适的方法执行),将会执行doperform()方法.

因为parameterparser把所有的&quot;key&quot;都变成了小写,我们必须将提交的数据里得到一个合适的方法名,比如:一个按钮名叫 eventsubmit_dodelete,提交的时候就变成了eventsubmit_dodelete,因此,我们需要通过一些命名规范来得到真正的方法名,转换的规则是:
* 变量名(如:提交按钮)必需以&quot;eventsubmit_&quot;开头
* 变量名在这个前缀后必需是&quot;do&quot;
* 在&quot;do&quot;之后的第一个字母必须是大写并且其他都是小写
只要你遵循这些命名规范,在action类中就能找到相应的方法来执行.

(注:以上规则适合turbine2.1及以前的版本,在turbine2.2及以后的版本中 eventsubmit_domysavemethod也是一个合法的名子,因为在2.2以后的版本里,parameterparser不会把&quot;key&quot; 都变成小写,这一点在取得提交数据的时候也要注意的)

在turbineresources.properties里有一个属性,名叫&quot;action.eventsubmit.needsvalue&quot;. 如果把这个属性设置成&quot;true&quot;,那只有值不为空,并且不为0的事件才会被执行,这在一个form有多个不同的事件(或者说提交按钮),并且由客户端的代码(比如javascript)提交的时候比较有用.

本文的原文地址http://jakarta.apache.org/turbine/turbine-2.3/howto/action-event-howto.html

作者的blog: http://www.matrix.org.cn/blog/wolfw/


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons