中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > Struts/Hibernate
webwork+jstl开发页面
作者:未知 时间:2005-07-24 21:23 出处:JR 责编:chinaitpower
              摘要:webwork+jstl开发页面
近期研究了一下webwork和jstl,发现二者组合开发页面流真是很简单的。因为没有找到类似的文章,我就抛砖引玉了。
通常我们只提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:
<form method="post" action="login.action">
<p align="center">用户名:<input type="text" name="model.account" />
<br>
<p align="center">密  码 :<input type="password" name="model.password" />
</form>
开发action:
public class LoginAction implements Action, ModelDriven {
    private final static String LOGIN_FAIL = "loginfail";
    User loginInfo = new User();
    public String execute() throws Exception {
         if(validate(loginInfo)){
//将当前登录的用户名保存到Session
            ActionContext ctx = ActionContext.getContext();
            Map session = ctx.getSession();
            session.put("login_user_account", loginInfo.getAccount());
            return SUCCESS;
        } else {
            loginInfo.setErrorMsg("Username/Password Error!");
            return LOGIN_FAIL;
        }
    }
    public String reLogin() throws Exception {
        return LOGIN_FAIL;
    }


    public Object getModel() {
        return loginInfo;
    }
}
配置文件xwork.xml
<package name="login" extends="webwork-default">
    <action name="login" class="com.nwsh.login.action.LoginAction">
      <result name="success" type="dispatcher">
        <param name="location">/index.htm</param>
      </result>
      <result name="loginfail" type="dispatcher">
        <param name="location">/login.htm</param>
      </result>
      <interceptor-ref name="params" />
      <interceptor-ref name="model-driven"/>
    </action>
</package>

对于本页面,简单到登陆页面可以使用html,对于由信息显示的页面可以配合jstl来开发Jsp(2.0).页面也十分简单,举个显示用户信息的例子:
<input type="text" name="userInfo.account" value="${userInfo.account}">
<input type="text" name="userInfo.name" value="${userInfo.name}">

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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有