webwork+jstl开发页面

来源:互联网 发布:淘宝主播招聘网 编辑:程序博客网 时间:2024/05/16 19:20
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

  近期研究了一下webworkjstl,发现二者组合开发页面流真是很简单的。因为没有找到类似的文章,我就抛砖引玉了。

  通常我们只提webwork,实际上使用的时候,我们会用到两个项目webwork和xwork。webwork的功能如下:

  1。提供页面展现的标签

  2。负责拦截向后台发送的action请求,

  3。将前台的form请求转化为本地的上下文,并将本地返回的上下文设置到request/servlet上下文中

  4。将action请求派发给xwork定义的action或action方法。

  5。返回应答信息

  xwork的功能:

  1。拦截器功能,webwork传递过来的请求和上下文转化为action的属性或特定的model对象(类似struts的actionform),并将model数据或action属性设置到本地上下文中

  2。执行action,完成业务逻辑。

  webwok这种划分,使得web开发和后台应用的开发可以完全分开,后台可以进行独立的测试,action完全脱离web环境。

  举一个做login的例子:

  页面login.html:

 

  用户名:

 

  密 码:

 

  开发action:

  publicclassLoginActionimplementsAction,ModelDriven{

  privatefinalstaticStringLOGIN_FAIL="loginfail";

  UserloginInfo=newUser();

  publicStringexecute()throwsException{

  if(validate(loginInfo)){

  //将当前登录的用户名保存到Session

  ActionContextctx=ActionContext.getContext();

  Mapsession=ctx.getSession();

  session.put("login_user_account",loginInfo.getAccount());

  returnSUCCESS;

  }else{

  loginInfo.setErrorMsg("Username/PasswordError!");

  returnLOGIN_FAIL;

  }

  }

  publicStringreLogin()throwsException{

  returnLOGIN_FAIL;

  }

  publicObjectgetModel(){

  returnloginInfo;

  }

  }

  配置文件xwork.xml

  webwork-default">

 

 

  /index.htm

 

 

  /login.htm

 

 

 

 

 

  对于本页面,简单到登陆页面可以使用html,对于由信息显示的页面可以配合jstl来开发Jsp(2.0).页面也十分简单,举个显示用户信息的例子:

 

 

  在jsp2.0中,可以直接使用EL语言,这样你就可以使用${userInfo.name},来表示action的model-userInfo包含的信息,注意:这里需要使用一个拦截器,将model属性设置到request/serlvet的上下文中。

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>