- 浏览: 13975 次
- 性别:
- 来自: 合肥
最近访客 更多访客>>
最新评论
-
fangzhouxing:
建议使用AutoTableFormLayout:如: getR ...
请教大家如何将页面的布局做成图2的那样?? -
kaki:
的确如此!
EXT+ACTION OR EXT+DWRPROXY -
crabboy:
kaki 写道Firebug调试不能解决IE下面的特殊问题,谢 ...
EXT+ACTION OR EXT+DWRPROXY -
kaki:
Firebug调试不能解决IE下面的特殊问题,谢谢!
我的问 ...
EXT+ACTION OR EXT+DWRPROXY -
liuqiyu:
做的时候,用Firebug调试,就清楚哪里出问题
EXT+ACTION OR EXT+DWRPROXY
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
java 代码
- //接下来是写业务逻辑
- 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 Returns the username.
- */
- public String getUsername() {
- return username;
- }
- /**//**
- * @param username The username to set.
- */
- public void setUsername(String username) {
- this.username = username;
- }
- }
- TableRowBean.java
- package org.mstar.strutsajax.form;
- /**//**
- * @author matianyi
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
- public class TableRowBean{
- private String col1Value;
- private String col2Value;
- private String col3Value;
- /**//**
- * @return Returns the col1Value.
- */
- public String getCol1Value() {
- return col1Value;
- }
- /**//**
- * @param col1Value The col1Value to set.
- */
- public void setCol1Value(String col1Value) {
- this.col1Value = col1Value;
- }
- /**//**
- * @return Returns the col2Value.
- */
- public String getCol2Value() {
- return col2Value;
- }
- /**//**
- * @param col2Value The col2Value to set.
- */
- public void setCol2Value(String col2Value) {
- this.col2Value = col2Value;
- }
- /**//**
- * @return Returns the col3Value.
- */
- public String getCol3Value() {
- return col3Value;
- }
- /**//**
- * @param col3Value The col3Value to set.
- */
- public void setCol3Value(String col3Value) {
- this.col3Value = col3Value;
- }
- }
- //上面的代码都比较简单,不用说大家也都知道是干什么用的。
java 代码
- TableModelBean.java 这是核心业务类,既要被Action使用又要被dwr使用。
- 由于我注释写了一些,所以就不详细介绍了
- public class TableModelBean {
- //表格的第一列
- public static final int COLUMN_1 = 0;
- //表格的第二列
- public static final int COLUMN_2 = 1;
- //表格的第三列
- public static final int COLUMN_3 = 2;
- //每一列的排序升序降序标记 true升序,false降序
- private boolean[] columnFlags = { false, false, false };
- //表格分页总页面数
- private int totalPage = 0;
- //表格当前页
- private int currentPage = 0;
- //表格总行数
- private int rowsCount = 0;
- //没用
- private String[] pagers = { "" };
- //存放全体记录的容器
- private List rows = new ArrayList();
- //存放当前记录的容器
- private List currentPageRows = new ArrayList();
- //数据库操作类
- private static ModelOneDAO dao;
- //每页记录数设为20
- private static final int PAGE_SIZE = 20;
- //初始排序行为第一行
- private int sortedColumn = 1;
- /**//**
- * 构造函数
- */
- public TableModelBean() {
- dao = new ModelOneDAO();
- init();
- }
- /**//**
- * 初始化
- */
- private void init() {
- try {
- rows = dao.getSortedRows(sortedColumn, columnFlags[sortedColumn]);
- setRowsCount(rows.size());
- setTotalPage(getTotalPageByRow(rows.size(), PAGE_SIZE));
- setCurrentPage(1);
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**//**
- * 返回当前页的内容
- * @return Returns the currentPage.
- */
- public int getCurrentPage() {
- return currentPage;
- }
- /**//**
- * 设置当前页
- * @param currentPage
- * The currentPage to set.
- */
- public void setCurrentPage(int currentPage) {
- this.currentPage = currentPage;
- currentPageRows.clear();
- int firstIndex = PAGE_SIZE * (currentPage - 1);
- int lastIndex = (firstIndex + PAGE_SIZE) < rowsCount ? firstIndex
- + PAGE_SIZE : rowsCount;
- for (int i = firstIndex; i < lastIndex; i++) {
- currentPageRows.add(rows.get(i));
- }
- }
- /**//**
- * 取得所有行
- * @return Returns the rows.
- */
- public List getRows() {
- return rows;
- }
- /**//**
- * 取的分页数
- * @return Returns the totalPage.
- */
- public int getTotalPage() {
- init();
- return totalPage;
- }
- /**//**
- * 设置分页数
- * @param totalPage
- * The totalPage to set.
- */
- public void setTotalPage(int totalPage) {
- this.totalPage = totalPage;
- }
- /**//**
- * 取得纪录数
- * @return Returns the totalRows.
- */
- public int getRowsCount() {
- return rowsCount;
- }
- /**//**
- * 设置记录数
- * @param totalRows
- * The totalRows to set.
- */
- public void setRowsCount(int rowsCount) {
- this.rowsCount = rowsCount;
- }
- /**//**
- * 取得当前页中的记录数
- * @return Returns the currentPageRows.
- */
- public List getCurrentPageRows() {
- return currentPageRows;
- }
- /**//**
- * 取得page页中的记录,当page大于totalPage时返回最后页
- * 因为是上面的getCurrentPageRows函数的重载,所以在dwr中不能正常使用。
- * 于是出现了getRowsByPageNo方法。
- * @param page
- * @return the currentPageRows.
- */
- public List getCurrentPageRows(int page) {
- currentPageRows.clear();
- int firstIndex = PAGE_SIZE * (page - 1);
- int lastIndex = (firstIndex + PAGE_SIZE) < rowsCount ? firstIndex
- + PAGE_SIZE : rowsCount;
- for (int i = firstIndex; i < lastIndex; i++) {
- currentPageRows.add(rows.get(i));
- }
- return currentPageRows;
- }
- /**//**
- * 取得page页中的记录,当page大于totalPage时返回最后页
- * @param page
- * @return 包含当前页记录的List
- */
- public List getRowsByPageNo(int page) {
- init();
- page = page > totalPage ? totalPage : page;
- List result = new ArrayList();
- int firstIndex = PAGE_SIZE * (page - 1);
- int lastIndex = (firstIndex + PAGE_SIZE) < rowsCount ? firstIndex
- + PAGE_SIZE : rowsCount;
- for (int i = firstIndex; i < lastIndex; i++) {
- result.add(rows.get(i));
- }
- return result;
- }
- /**//**
- * 按照某一列进行排序,再返回当前页中的数据
- * @param currentPage
- * @param columnNo
- * @return the Rows of current Page that sorted by columnNo
- */
- public List getCurrentPageSortedByColumnRows(int currentPage, int columnNo) {
- init();
- sortBy(columnNo);
- currentPageRows.clear();
- int firstIndex = 20 * (currentPage - 1);
- int lastIndex = (firstIndex + 20) < rowsCount ? firstIndex + 20
- : rowsCount;
- for (int i = firstIndex; i < lastIndex; i++) {
- currentPageRows.add(rows.get(i));
- }
- return currentPageRows;
- }
- /**//**
- * 返回一个分页数组。用处不太大,客户端用Javascript也可以计算。
- * @return Returns the pages.
- */
- public String[] getPagers() {
- pagers = new String[totalPage];
- for (int i = 1; i <= totalPage; i++) {
- pagers[i - 1] = i + "";
- }
- return pagers;
- }
- /**//**
- * 按照某一列进行排序
- * @param columnNo
- */
- public void sortBy(int columnNo) {
- this.sortedColumn = columnNo;
- columnFlags[columnNo] = (!columnFlags[columnNo]);
- try {
- rows = dao.getSortedRows(columnNo, columnFlags[columnNo]);
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- /**//**
- * 删除某一列,按照主键(第一列)
- * @param key
- * @return
- */
- public boolean deleteRow(int key) {
- try {
- dao.deleteRow(key);
- } catch (SQLException e) {
- e.printStackTrace();
- return false;
- }
- return true;
- }
- /**//**
- * 要新增加一个数据前先计算出Id.
- * 这个例子只是用来演示用的,如果多人访问会出现并发问题
- * @return
- */
- public int getNextId() {
- try {
- return dao.getNextId();
- } catch (SQLException e) {
- e.printStackTrace();
- return -1;
- }
- }
- /**//**
- * 增加一行
- * @param trb
- * @return
- */
发表评论
-
微信刚刚走出装逼模式,开始进入玩残模式!
2014-11-06 05:34 549清晨很早醒来,打开朋友圈,几十条广告,几十条心灵泔水汤,几十 ... -
最牛程序员 好样村支书
2014-05-30 17:40 661http://epaper.xuanwww.com/xcrb/ ... -
村支书的“土路子”
2014-05-30 17:37 676新闻作者:■本报记者 利成志 发布时间: 2014年05月 ... -
人生追求如此,夫复何求呢?
2014-03-20 14:00 696http://www.xcxf.gov.cn/content/ ... -
注册机备份
2012-03-06 22:57 737import java.io.BufferedReader; ... -
Springside3.3 昨天发布了
2010-04-07 21:39 1242http://sourceforge.net/projects ... -
关于Ext读取DWR返回数据的疑惑
2008-01-17 09:10 1993各位老大,我的问题是 ... -
DWR+Spring+Hiberater 字符集问题
2007-10-22 23:31 1554大家好,我的系统是这样的现状: 1、数据库现在的编码是ISO ...
相关推荐
6. **示例代码分析**:可能提供一个简单的例子,展示如何在Spring应用中创建一个DWR服务,以及在前端JavaScript如何调用这个服务。这可能涉及到`@RemoteProxy`注解的使用,以及Spring MVC的控制器方法。 7. **测试...
总结,DWR-J2EE的简单例子为初学者提供了一个快速了解和实践AJAX通信的平台。通过学习这个例子,开发者可以深入理解DWR如何实现JavaScript与Java的无缝交互,以及如何在实际项目中利用DWR提高Web应用的用户体验。
Direct Web Remoting (DWR) 是一个开源Java库,它允许在Web应用程序中轻松地进行JavaScript和服务器端Java代码之间的交互。DWR使得AJAX(Asynchronous JavaScript and XML)开发更为简便,允许开发者在不刷新整个...
DWR 是一个开源的 Java 库,它使得在浏览器和服务器之间可以进行动态、异步的数据交换成为可能,这正是 AJAX(Asynchronous JavaScript and XML)的核心理念。DWR 提供了一种简单的方式来调用服务器端的 Java 方法,...
本教程将带你走进DWR的世界,通过一个简单的"Hello World"示例来了解其基本使用。 ### 一、DWR简介 DWR的核心概念是"Remoting",即远程调用,它使得JavaScript可以像调用本地方法一样调用服务器上的Java方法。DWR...
DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站,其中包含jar包,javadoc,例子等
在这个名为“dwr例子”的压缩包中,包含了一个名为“dwrdemo1”的示例项目。这个项目可能是一个简单的DWR应用,用于展示如何配置和使用DWR框架。下面,我们将详细讨论DWR的关键概念和使用方法。 1. **DWR配置**: ...
总结来说,"server-side clock"例子是DWR技术的一个直观展示,演示了如何使用DWR的JavaScript API与服务器端进行通信,实现实时更新页面内容。通过对这个示例的学习,开发者能够更好地理解和运用DWR进行富互联网应用...
这个资料集合应该包含了关于如何集成DWR和Spring的详细教程,以及一个实际的例子,可以帮助开发者理解并掌握这种整合方式。通过深入学习和实践,你可以创建出具有强大交互性、响应速度快的Web应用。
这个"学习dwr的一个例子"是一个实践教程,可能包含了如何设置DWR环境、创建远程Java对象、调用这些对象的方法以及处理返回的数据等步骤。 1. **DWR简介**:DWR的核心功能是通过AJAX技术实现浏览器与服务器之间的...
Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR通过AJAX技术提供了一种简单的方法来实现实时的、双向的通信,使得前端用户...
这个"TestDwr"压缩包文件提供的例子是一个简单的DWR应用示例,适合初学者理解和学习。 1. **DWR基本概念**: - DWR的核心组件包括`DWR Engine`、`Reverse AJAX`和`JavaBeans`。 - `DWR Engine`是DWR的核心,它...
在这个"Dwr做的一个聊天室例子"中,我们可以深入探讨DWR如何被用来创建一个简单的在线聊天系统。 1. **DWR基础** DWR的核心功能是提供了一个安全且高效的机制,使得JavaScript可以调用服务器端的Java方法,就像...
dwr技术,怎样配置参照网上,这里提供前台页面和dwr配置文件。这里返回的是list数组和对象等,及怎样在页面进行展现。如果你没有用到spring ,则在dwr配置文件中creator="spring" 该为其他的生成方式。
**JAVA-DWR简单例子** ...通过这个简单的JAVA-DWR例子,我们可以了解如何利用DWR实现JavaScript和Java的无缝交互,从而创建更富交互性的Web应用。理解并掌握DWR的使用,对于提升Web开发效率和用户体验具有重要意义。
下面我们将深入探讨DWR的工作原理、配置过程以及如何创建一个简单的测试例子。 1. DWR的工作原理: DWR的核心在于它提供了一种安全的、跨域的通信方式。它通过JavaScript接口(JSR-269或JSR-173注解)动态生成...
Direct Web Remoting (DWR) 是一个开源的Java库,允许在Web应用程序中实现Ajax功能,即在客户端JavaScript和服务器端Java之间进行实时通信。DWR简化了这个过程,使得开发者无需处理底层的HTTP请求和响应,而是可以...
DWR 是一个开源的 Java 库,它允许 JavaScript 在客户端与服务器端进行交互,实现了动态 Web 应用程序中的 AJAX 功能。DWR 3.0 版本在前一版本的基础上进行了优化和增强,提供了更高效、更安全的远程方法调用...
这个"一个DWR例子,直接导入eclipse可运行"的压缩包提供了一个实战性的教程,帮助开发者了解并实践DWR的基本用法。 DWR的核心功能在于创建一种透明的远程调用机制,使得JavaScript可以像操作本地对象一样调用服务器...
Direct Web Remoting (DWR) 是一个开源Java库,它允许在浏览器和服务器之间进行实时、安全的双向通信,使得JavaScript可以直接调用Java方法,从而实现Web应用的Ajax功能。这个"TestDWR"文件很可能是DWR的一个简单...