这一篇我用dwr做了个可以不刷新页面就更新的表格。
运行环境:
windows xp pro sp2
j2sdk1.2.4_03
weblogic8.1
struts1.2.4
开发工具eclipse3.0
其实dwr和struts没有什么关系,只不过最近我们项目组在用struts作东西。我就顺便用把我的程序建立在Struts上。
主要文件。
dwr.jar--dwr的类库包
struts的类库包,具体我不说了,这东西谁都知道。
jdts0.9.jar--数据库SQLServer的驱动程序包。
以上jar包放在WebContent\WEB-INF\lib下
web.xml--谁都知道这东西干嘛用的吧。
struts-config.xml --这个也不说了。
dwr.xml -- dwr的配置文件
weblogic.xml -- weblogic模块配置文件。
还有一个struts的tld就不说了
以上文件放在WebContent\WEB-INF下面。
login.jsp -- 登陆界面,这里我也用到了dwr
showtable.jsp --登陆成功会转到这个页面,一个ajax表格。
showtable.js -- showtable.jsp中用到的javascript
main.css -- 不说了
还有 *.gif界面要到的图片
以上文件放在WebContent下
剩下的就是java类了。
LoginAction.java --Struts的Action,负责登陆
TableAction.java --Struts的Action,负责表格内容初始化
UserLogic.java --负责验证用户
TableRowConverter.java -- 继承于dwr的BeanConverter,负责将一个对象转成javascript能用的东西。
LoginForm.java --Struts的Form,负责登陆信息
TableModelBean.java --TableModel一部分给struts用一部分给dwr用。
TableRowBean.java 用户存放行信息的Bean。
ModelOneDAO.java --随便取的名字,有点恶(三声)。负责从数据库操作的。
这个例子还需要一个数据库,我用的是SQLServer。
下面是建表的SQL语句。输入数据的SQL就不贴了太长了。我会弄个源码下载的。
/*==============================================================*/
/* DBMS name: Microsoft SQL Server 2000 */
/* Created on: 2005-8-1 13:21:33 */
/*==============================================================*/
if exists (select 1
from sysobjects
where id = object_id('AJAX_MODEL_ONE')
and type = 'U')
drop table AJAX_MODEL_ONE
go
/*==============================================================*/
/* Table: AJAX_MODEL_ONE */
/*==============================================================*/
create table AJAX_MODEL_ONE (
col1 int not null,
col2 int not null,
col3 int not null,
constraint PK_AJAX_MODEL_ONE primary key (col1)
)
go
接下来是写业务逻辑
Login.java
/**//*
* Created on 2005-7-29
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.mstar.strutsajax.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.mstar.strutsajax.ajax.UserLogic;
import org.mstar.strutsajax.form.LoginForm;
/**//**
* @author matianyi
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class LoginAction extends Action {
/**//* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
if(validateUser((LoginForm)form)){
return mapping.findForward("success");
} else {
return mapping.findForward("failure");
}
}
private boolean validateUser(LoginForm form){
UserLogic userLogic = new UserLogic();
return userLogic.validate(form.getUsername(),form.getPassword());
}
}
UserLogic.java
package org.mstar.strutsajax.ajax;
/**//**
* @author matianyi
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class UserLogic {
public boolean validate(String username,String password){
if("mty".equals(username)&&"123".equals(password)){
return true;
} else {
return false;
}
}
}
LoginForm.java
package org.mstar.strutsajax.form;
import org.apache.struts.action.ActionForm;
/**//**
* @author matianyi
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class LoginForm extends ActionForm {
private String username;
private String password;
/**//**
* @return Returns the password.
*/
public String getPassword() {
return password;
}
/**//**
* @param password The password to set.
*/
public void setPassword(String password) {
this.password = password;
}
/**//**
* @return Retu
分享到:
相关推荐
将DWR与SSH整合,可以增强应用的用户体验,因为DWR能够实现在不刷新整个页面的情况下更新部分内容。 下面,我们逐步解析这个例子: 1. **环境准备**:确保你已经安装了Java、Tomcat服务器,以及SSH和DWR的相关库。...
它通过在服务器端暴露Java对象,使得JavaScript可以直接调用这些对象的方法,实现了页面的无刷新更新。DWR提供了一套完整的生命周期管理,包括对象的创建、调用、缓存以及错误处理。 2. **DWR配置** 在开始DWR ...
在这个“dwr第一个绝对正常运行的例子”中,我们将深入探讨DWR的核心概念、工作原理以及如何设置一个基本的DWR应用。 DWR的主要功能是提供一种安全且高效的方式,使得JavaScript可以调用服务器端的Java方法,从而...
在实际应用中,DWR可以用于实时更新用户界面、实现AJAX功能,比如无刷新搜索、动态表格填充等。通过这个简单的DWR demo,你可以学习到如何设置DWR环境,编写可被JavaScript调用的Java方法,以及在客户端进行调用的...
DWR(Direct Web Remoting)是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行实时的、双向的通信,无需刷新整个页面。这个小例子是关于如何使用DWR来动态地显示和操作HTML表格数据。...
1. **基本示例**:一个简单的例子可能包括创建一个计数器服务,客户端可以通过点击按钮无刷新地增加计数值。 2. **数据绑定**:利用DWR更新页面的数据绑定组件,如表格或图表,当服务器端数据发生变化时,客户端会...
标题 "一个Spring+hibernate+dwr的例子程序" 暗示了这是一个使用Java企业级开发框架构建的应用程序。这个程序结合了Spring、Hibernate和Direct Web Remoting (DWR)这三个核心组件,来实现高效、动态的Web应用程序。 ...
"DWR 自动完成生成表格的例子" 指的是使用 Direct Web Remoting (DWR) 技术来实现一个具有自动完成功能的表格。DWR 是一种允许 JavaScript 与服务器端 Java 代码进行交互的开源库,特别适用于创建动态、交互性强的...
DWR常用于创建动态和交互性强的Web应用,例如在线表格编辑、实时聊天应用、数据可视化等,使得用户无需刷新页面就能获取和更新服务器数据。 以上就是"DWR的一个简单例子带详细注释"所涵盖的关键知识点。通过这个...
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript在浏览器端与Java在服务器端进行直接通信,从而实现动态、无刷新的Web应用程序。本入门例子旨在帮助初学者快速理解并掌握DWR的基本用法和功能。 ...
标题“easyui-dwr”指的是一个使用EasyUI框架与DWR(Direct Web Remoting)集成的数据加载解决方案。EasyUI是一个基于jQuery的轻量级前端框架,用于构建用户界面,而DWR则是一种允许JavaScript在浏览器中直接调用...
DWR是一个开源的Java库,它允许JavaScript在浏览器中直接调用Java方法,从而实现了异步的、无刷新的Web应用。DWR简化了AJAX的使用,使得开发者可以更容易地在前后端之间传递数据。 首先,我们需要在服务器端设置DWR...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。在这个简单的DWR例子中,我们将探讨如何配置DWR、如何传递参数以及如何处理...
1. **DWR (Direct Web Remoting)**:DWR 允许 JavaScript 直接调用服务器端的 Java 方法,提供了 AJAX 功能,使得用户无需刷新页面就能更新内容。DWR 提供了安全、高效的异步通信机制,简化了前后端交互,提高了用户...
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript与服务器端的Java代码进行交互,实现异步更新网页,无需刷新整个页面。DWR简化了客户端和服务器端之间的通信,使得Web应用更加动态和响应。下面将...
1. **AJAX通信**:DWR通过在后台执行Java方法并返回结果到JavaScript,实现了无刷新的页面更新。这使得用户界面更加响应式,提高了用户体验。 2. **安全机制**:DWR提供了一套安全框架,包括自动的CSRF保护和对HTTP...
"EXT+DWR配合简单例子"这个主题,意味着我们将探讨如何将这两者结合,利用EXT的前端能力与DWR的后端通信能力,构建一个功能完善的Ajax应用。一种简单的配合方式可能是: 1. **前端EXT设置**:首先,在EXT应用中创建...
Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页的技术,极大地提升了用户体验。而Direct Web Remoting (DWR) 是一个开源Java库,它使得JavaScript和Java服务器端之间可以...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,无需页面刷新。这个入门教程将引导你了解DWR的基本概念、安装配置以及实际应用。 1. **DWR的基本概念** DWR的核心...
通过DWR,用户可以实时地在客户端更新表格内容,而无需刷新整个页面。 通过学习这个简单的DWR例子,我们可以了解到如何利用DWR实现在Web应用中进行实时的前后端通信,提升应用的响应速度和交互体验。同时,理解DWR...