|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?js|web|页面WebWork是一个源代码开放的Web使用框架,用于简化基于Web的使用开辟。本专栏先容了WebWork而且形貌了怎样利用WebWork和JavaServerPages(JSP)、Velocity两种手艺来创建注册界面的历程。
Web使用程序的计划开辟是庞大而且费时的。但是,你可以经由过程使用一种框架处置罕见的Web使用程序来简化开辟流程。很多开源Web使用框架可以做到这一点乃至更好一些。这些开辟框架中最好的一个就是WebWork,是开源项目中OpenSymphony组的一个Web使用开辟框架。
WebWork的最年夜长处是它的复杂性和天真性。WebWork有一个很小的API,它使开辟者能够敏捷举行开辟事情。WebWork是很多特征和合用性的组合,包含利用variourview手艺,比方JavaServerPages(JSP),Velocity,ExtensibleStylesheetLanguageTransformations
Specification(XSLT)和JasperReporters。WebWork具有一个活泼的社区,有很多文章、开辟者和用户。
注重:本文基于WebWork1.3.0releasecandidate2(RC2)。为了利用本文供应的例子,你必要在你的使用服务器的webapps目次下创建文件夹,将例子拷贝至新的文件夹下,同时将所需的jar文件从WebWorkdistribution拷贝至WEB-INF/lib目次。在此处下载WebWork和本文相干的源代码。
------
Actions
WebWork的一个最主要的特征就是Action接口。WebWorkactions经由过程在页面(视图)和贸易逻辑间供应mapping来把持Web使用程序流程。在WebWork中,提交窗体到一个actionURI(UniformResourceIdentifier);这个URI指向一个响应的action;action实行;用户能够行进到响应的视图。
下述class,LoginAction,是WebWork处置基于Web使用的注册窗体的例子。LoginAction扩大了ActionSupport。它是一个基类,供应了处置毛病、视图映照、和很多有效的功效。
importwebwork.action.*;
publicclassLoginActionextendsActionSupport
{
privateStringuserName;
privateStringpassword;
publicStringgetPassword()
{
returnpassword;
}
publicStringgetUserName()
{
returnuserName;
}
publicvoidsetPassword(Stringpassword)
{
this.password=password;
}
publicvoidsetUserName(StringuserName)
{
this.userName=userName;
}
publicStringdoExecute()
{
returnSUCCESS;
}
publicvoiddoValidation()
{
if(userName==null||userName.length()<1)addError("UserName","Pleaseenterusername.");
if(password==null||password.length()<1)addError("Password","Pleaseenterpassword.");
}
}
LoginAction包含了两个JavaBean属性,password和username。WebWork把数据附属性中安排到你的视图中而且主动剖析送到action的参数来设置属性值。
LoginAction重载了ActionSupport的两个办法:doValidation()和doExecute()。doValidation()办法考证参数,doExecute()办法让用户行进到响应的视图。doExecute()办法前往一个字符串,假如一切的处置是乐成的,前往常量success。假如有任何成绩产生,在用户输出视图上前往常量input。在LoginAction的doValidation()办法中挪用addError指出了一个认证成绩而且让用户前往INPUT视图。
---------
Viewmapping
WebWork有两种办法从map到视图:经由过程一个Action.xml文件大概一个views.properties文件。每种举措应当具有一个INPUT视图和一个SUCCESS视图。下述Action.xml文件界说了两个actions,loginJSP和loginVelocity。这两个action都利用了LoginAction类。假如LoginAction前往SUCCESS,这两个action利用LoginAction类而且利用户转向success.html。假如LoginAction前往INPUT,action转向响应的INPUT视图,大概login.jsp、大概login.vm;
<actions>
<actionname="LoginAction"alias="loginJSP">
<viewname="input">login.jsp</view>
<viewname="success">success.html</view>
</action>
<actionname="LoginAction"alias="loginVelocity">
<viewname="input">login.vm</view>
<viewname="success">success.html</view>
</action>
</actions>
--------
视图
只管WebWork关于很多分歧的视图手艺供应了撑持,可是最为罕见的是JSP和Velociy。以下页面是两个注册页面的例子--一个利用了JSP另外一个利用了Velocity。每一个页面都包含了一个用户部分和一个暗码部分,这两部分提交给WebWorkaction。
Login.jsp页面经由过程利用WebWork标志库来创建和处置以上两个部分,而且经由过程毛病搜集器来处置毛病。webwork:textfield和webwork:password标志创建了text和password部分,webwork:iterator标志处置从LoginAction前往的毛病。webwork:property标志设置username,password和errors属性。
<%@tagliburi="webwork"prefix="webwork"%>
<html>
<head>
<title>WebWorkJSPExample</title>
</head>
<body>
<formaction="loginJSP.action"method="post">
<webwork:property>
<webwork:textfieldlabel="Name"name="userName"/>
<webwork:passwordlabel="Password"name="password"/>
</webwork:property>
<inputtype="submit"value="Submit"/>
</form>
<webwork:iteratorvalue="errors"gt;
<br><webwork:property/>
</webwork:iterator>
</body>
</html>
login.vm页面利用了Velocity模板言语来创建域而且处置毛病。在Velocity中,$标记标明了一个参考。!标记告知Velocity假如参考为空,那末甚么都不显现。#标记暗示了一个指令。鄙人述例子中,$!userName和$!password标明参考援用了LoginAction中的username和password;#foreach在毛病处置属性中唆使了轮回。
<html>
<head>
<title>WebWorkVelocityExample</title>
</head>
<body>
<formaction="loginVelocity.action"method="post">
<inputtype="text"name="userName"value="$!userName"/>
<inputtype="text"name="password"value="$!password"/>
<inputtype="submit"value="Submit"/>
</form>
#foreach($errorin$errors)
<br>$error
#end
</body>
</html>
---------------
入手下手事情!
WebWork是一个易用的、天真的、功效壮大的开源Web使用框架,本文先容了它的基础功效。会见OpenSympony的网站往进修而且下载最新版本的WebWork。你下载完WebWork后,到Jakarta的网站的上部往寻觅Velocity,一种复杂、疾速的开源引擎,它是你在网页中利用JSP的另外一个选择。
----
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开 |
|