`
zengbo0710
  • 浏览: 414651 次
社区版块
存档分类
最新评论

DWR 应用实例(一) 新闻发布系统,多种新闻类型之间切换无刷新

阅读更多
 
最近闲着用dwr做了个类似 163 新闻导航,在多种新闻类型下切换,无须刷新:
step1: 下载DWR包
step2: 构建数据库
sql 代码
  1. if exists (select 1   
  2.             from  sysobjects   
  3.            where  id = object_id('AJAX_NEW')   
  4.             and   type = 'U')   
  5.    drop table AJAX_NEW   
  6. go   
  7.   
  8.   
  9. /*==============================================================*/   
  10. /* Table: AJAX_NEW                                              */   
  11. /*==============================================================*/   
  12. create table AJAX_NEW (   
  13.    ID                   integer              not null,   
  14.    NEW_TITLE            VARCHAR(100)         null,   
  15.    NEW_AUTHER           VARCHAR(30)          null,   
  16.    NEW_TYPE             VARCHAR(30)          null,   
  17.    NEW_CONTENT          VARCHAR(500)         null,   
  18.    constraint PK_AJAX_NEW primary key  (ID)   
  19. )   
  20. go   

step3 搭建Struts,Hibernate框架,生成Hibernae配置文件以及po类:

java 代码
  1. package com.fzfx88.conf;   
  2.   
  3. /**  
  4.  * AbstractAjaxNew generated by MyEclipse - Hibernate Tools  
  5.  * po 抽象类  
  6.  * auther huguoqing  
  7.  */  
  8.   
  9. public abstract class AbstractAjaxNew  implements java.io.Serializable {   
  10.   
  11.     // Fields       
  12.      private Integer id;   
  13.      private String newTitle;   
  14.      private String newAuther;   
  15.      private String newType;   
  16.      private String newContent;   
  17.   
  18.     // Constructors   
  19.   
  20.     /** default constructor */  
  21.     public AbstractAjaxNew() {   
  22.     }   
  23.   
  24.        
  25.     /** full constructor */  
  26.     public AbstractAjaxNew(String newTitle, String newAuther, String newType, String newContent) {   
  27.         this.newTitle = newTitle;   
  28.         this.newAuther = newAuther;   
  29.         this.newType = newType;   
  30.         this.newContent = newContent;   
  31.     }   
  32.   
  33.       
  34.     // Property accessors   
  35.   
  36.     public Integer getId() {   
  37.         return this.id;   
  38.     }   
  39.        
  40.     public void setId(Integer id) {   
  41.         this.id = id;   
  42.     }   
  43.   
  44.     public String getNewTitle() {   
  45.         return this.newTitle;   
  46.     }   
  47.        
  48.     public void setNewTitle(String newTitle) {   
  49.         this.newTitle = newTitle;   
  50.     }   
  51.   
  52.     public String getNewAuther() {   
  53.         return this.newAuther;   
  54.     }   
  55.        
  56.     public void setNewAuther(String newAuther) {   
  57.         this.newAuther = newAuther;   
  58.     }   
  59.   
  60.     public String getNewType() {   
  61.         return this.newType;   
  62.     }   
  63.        
  64.     public void setNewType(String newType) {   
  65.         this.newType = newType;   
  66.     }   
  67.   
  68.     public String getNewContent() {   
  69.         return this.newContent;   
  70.     }   
  71.        
  72.     public void setNewContent(String newContent) {   
  73.         this.newContent = newContent;   
  74.     }   
  75. }   

PO类,MyEclipse 5.1.1生成:

java 代码
  1. package com.fzfx88.conf;   
  2. // Generated by MyEclipse - Hibernate Tools   
  3.   
  4. /**  
  5.  * AjaxNew generated by MyEclipse - Hibernate Tools  
  6.  * auther huguoqing  
  7.  */  
  8. public class AjaxNew extends AbstractAjaxNew implements java.io.Serializable {   
  9.   
  10.     // Constructors   
  11.   
  12.     /** default constructor */  
  13.     public AjaxNew() {   
  14.     }   
  15.   
  16.        
  17.     /** full constructor */  
  18.     public AjaxNew(String newTitle, String newAuther, String newType, String newContent) {   
  19.         super(newTitle, newAuther, newType, newContent);           
  20.     }   
  21.       
  22. }  

Hibernate  AjaxNew.hbm.xml配置文件

xml 代码
  1. <!--sp-->xml version="1.0"?>  
  2. <!--CTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   </sp-->
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  4. <!--  </span> </li> <li class="alt"><span><span class="comments">    Mapping file autogenerated by MyEclipse - Hibernate Tools </span> </span></li> <li class=""><span><span class="comments">-->  
  5. <hibernate-mapping>  
  6.     <class name="com.fzfx88.conf.AjaxNew" table="AJAX_NEW" schema="dbo" catalog="pepsi">  
  7.         <id name="id" type="java.lang.Integer">  
  8.             <column name="ID" />  
  9.             <generator class="identity" />  
  10.         id>  
  11.         <property name="newTitle" type="java.lang.String">  
  12.             <column name="NEW_TITLE" length="100" />  
  13.         property>  
  14.         <property name="newAuther" type="java.lang.String">  
  15.             <column name="NEW_AUTHER" length="30" />  
  16.         property>  
  17.         <property name="newType" type="java.lang.String">  
  18.             <column name="NEW_TYPE" length="30" />  
  19.         property>  
  20.         <property name="newContent" type="java.lang.String">  
  21.             <column name="NEW_CONTENT" length="500" />  
  22.         property>  
  23.     class>  
  24. hibernate-mapping>  

 step:4  构建 Action 类:

java 代码
  1. /**  
  2.  * news system  
  3.  */  
  4. package com.fzfx88.base.action;   
  5.   
  6.   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import javax.servlet.http.HttpServletResponse;   
  9.   
  10. import org.apache.struts.action.ActionForm;   
  11. import org.apache.struts.action.ActionForward;   
  12. import org.apache.struts.action.ActionMapping;   
  13.   
  14. import com.fzfx88.base.form.AjaxNewsSystemForm;   
  15. import com.fzfx88.base.service.AjaxNewsSystemService;   
  16. import com.fzfx88.common.base.BaseAction;   
  17. import com.fzfx88.conf.AjaxNew;   
  18.   
  19. /**  
  20.  * @author huguoqing  
  21.  *  
  22.  */  
  23. public class AjaxNewsSystemAction extends BaseAction {   
  24.     AjaxNewsSystemService nService = new AjaxNewsSystemService();   
  25.     /**  
  26.      * 初始化  
  27.      * @param mapping  
  28.      * @param form  
  29.      * @param request  
  30.      * @param response  
  31.      * @return  
  32.      */  
  33.     public ActionForward init(ActionMapping mapping,ActionForm form,   
  34.             HttpServletRequest request,HttpServletResponse response){   
  35.         AjaxNewsSystemForm nForm = (AjaxNewsSystemForm)form;   
  36.         AjaxNew news = nForm.getNews();   
  37.         return mapping.findForward("init");   
  38.     }   
  39.     /**  
  40.      * 新建  
  41.      * @param mapping  
  42.      * @param form  
  43.      * @param request  
  44.      * @param response  
  45.      * @return  
  46.      */  
  47.     public ActionForward save(ActionMapping mapping,ActionForm form,   
  48.             HttpServletRequest request,HttpServletResponse response){   
  49.         AjaxNewsSystemForm nForm = (AjaxNewsSystemForm)form;   
  50.         AjaxNew news = nForm.getNews();   
  51.         if(nService.createNews(news)){   
  52.             return mapping.findForward("success");   
  53.         }else{   
  54.             return mapping.findForward("false");   
  55.         }   
  56.     }   
  57.        
  58. }   

step 5: 构建数据层访问类:

java 代码
  1. /**  
  2.  *   
  3.  */  
  4. package com.fzfx88.base.service;   
  5.   
  6. import java.util.ArrayList;   
  7. import java.util.List;   
  8.   
  9. import org.hibernate.Hibernate;   
  10. import org.hibernate.HibernateException;   
  11. import org.hibernate.Query;   
  12. import org.hibernate.Session;   
  13. import org.hibernate.Transaction;   
  14.   
  15. import com.fzfx88.conf.AjaxNew;   
  16. import com.fzfx88.util.HibernateUtil;   
  17.   
  18. /**  
  19.  * @author huguoqing  
  20.  *  
  21.  */  
  22. public class AjaxNewsSystemService {   
  23.     /**  
  24.      * 新建news  
  25.      * @param news  
  26.      */  
  27.     public boolean createNews(AjaxNew news){   
  28.         Session session=HibernateUtil.currentSession();   
  29.         Transaction tran=session.beginTransaction();       
  30.         try{       
  31.             session.save(news);   
  32.             tran.commit();   
  33.             session.flush();   
  34.         } catch (HibernateException e) {   
  35.             if(tran!=null){   
  36.                 tran.rollback();   
  37.             }   
  38.             e.printStackTrace();   
  39.             return false;   
  40.         }finally {   
  41.             HibernateUtil.closeSession();   
  42.         }   
  43.         return true;   
  44.     }   
  45.     /**  
  46.      * 获得新闻列表  
  47.      * @param newType  
  48.      * @return  
  49.      */  
  50.     public List queryStoreList(String newType){   
  51.         List storeList =new ArrayList();   
  52.         Session session=HibernateUtil.currentSession();   
  53.         Transaction tran=session.beginTransaction();   
  54.         String sql="from AjaxNew where newType=:newType ";   
  55.         try {   
  56.             Query query=session.createQuery(sql);   
  57.             query.setParameter("newType",newType);   
  58.             storeList=query.list();   
  59.         } catch (HibernateException e) {   
  60.             if(tran!=null){   
  61.                 tran.rollback();   
  62.             }   
  63.             e.printStackTrace();   
  64.         }finally {   
  65.             HibernateUtil.closeSession();   
  66.         }   
  67.         return storeList;   
  68.     }   
  69.     /**  
  70.      * 根据id获得AjaxNew对象  
  71.      * @param id  
  72.      * @return  
  73.      */  
  74.     public AjaxNew retrieveAjaxNew(String newId){   
  75.         Integer id = Integer.parseInt(newId);   
  76.         Session session=HibernateUtil.currentSession();   
  77.         String sql="from AjaxNew w where w.id=:id ";   
  78.         AjaxNew item=null;   
  79.         try {   
  80.             Query query=session.createQuery(sql);   
  81.             query.setParameter("id",id);   
  82.                
  83.             item=(AjaxNew)query.uniqueResult();   
  84.             if(Hibernate.isInitialized(item)){   
  85.                  Hibernate.initialize(item);   
  86.             }   
  87.         } catch (HibernateException e) {   
  88.             e.printStackTrace();   
  89.         }finally {   
  90.             HibernateUtil.closeSession();   
  91.         }   
  92.         return item;   
  93.     }   
  94. }   

step 6: 构建Struts Form .................AjaxNewsSystemForm.java

step 7 :Struts 配置文件:

xml 代码
  1. <!--sp-->xml version="1.0" encoding="UTF-8"?>  
  2. <!--CTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"</sp-->>  
  3.   
  4. <struts-config>  
  5.   <data-sources/>  
  6.   <form-beans>  
  7.      <form-bean name="AjaxNewsSystemForm" type="com.fzfx88.base.form.AjaxNewsSystemForm" />        
  8.   form-beans>  
  9.   <global-exceptions />  
  10.   
  11.   <global-forwards>  
  12.     <forward name="success" path="/regSuccess.htm"/>  
  13.     <forward name="false" path="/false.htm"/>  
  14.   global-forwards>  
  15.   <action-mappings>  
  16.     <action name="AjaxNewsSystemForm"    
  17.               path="/news"    
  18.               type="com.fzfx88.base.action.AjaxNewsSystemAction"  
  19.               scope="request">  
  20.          <forward name="init" path="/base/news.jsp"/>  
  21.     action>  
  22.   action-mappings>  
  23.   <message-resources parameter="resource.ApplicationResources" />  
  24. struts-config>  
  25.   
 

分享到:
评论

相关推荐

    ListView上下翻页效果.zip

    ListView上下翻页效果

    Android项目之——漂亮的平台书架.zip

    Android项目之——漂亮的平台书架

    TestBrightness2.zip

    TestBrightness2

    00_Método_toBands.ipynb

    gee python 教程(西班牙语)

    (源码)基于Linux和GTK的系统监控与图形化显示.zip

    # 基于Linux和GTK的系统监控与图形化显示 ## 项目简介 本项目旨在通过分析Linux系统中的proc目录,提取并展示系统的关键信息,包括系统概况、进程信息和内存使用情况。通过使用GTK库,项目提供了一个图形化的用户界面,使用户能够直观地查看和监控系统的实时状态。 ## 项目的主要特性和功能 1. 系统信息展示 显示内核版本、系统启动时间等基本信息。 提供系统的主机名、CPU详细参数等信息。 2. 进程信息展示 显示所有进程的摘要信息,包括PID、CPU和内存使用率。 支持根据CPU使用率、内存使用率等参数对进程进行排序。 3. 内存信息展示 展示系统的内存使用情况,包括总内存、可用内存等详细参数。 4. 动态刷新 系统信息、进程信息和内存信息能够实时动态刷新,确保用户获取最新的系统状态。 5. 图形化界面 使用GTK库创建直观的图形界面,方便用户查看和操作。

    纯c语言迷宫源码.rar

    纯c语言迷宫源码

    c语言通讯录管理系统源码.rar

    c语言通讯录管理系统源码

    基于树莓派和GPT实现的多功能语音家庭助手

    功能列表 支持多种唤醒方式:语音唤醒,局域网消息唤醒,外设模块唤醒,远程唤醒 语音端点检测:自动检测语音截止点 语音识别:支持在线与离线双模式 文字转语音:舒适的人声 接续对话:完成交互对话全程只需唤醒一次 支持对话中断:可在任意时刻打断对话,重新提问 双引擎可选交互:接入GPT/星火大模型,支持聊天上下文,具有互联网搜索能力,并适时总结对话 聊天记忆:在程序结束后保存聊天内容,重新运行时自动加载 通知播报:手机上接收的消息(熄屏时)以自定义格式播报 音乐播放:获取QQ音乐个性推荐,支持调整音量,切换,暂停 音频闪避:在聊天交互/通知播报时自动减小音乐音量 日程设定:支持设定闹钟/倒计时,以及提醒事项 WebUI调参:可通过电脑和手机登录网页调参 外设控制:支持接入自定义设备(MQTT协议),配置相关文件可实现自动化 自动化智能家居:传入自定义状态,支持自定义场景触发自定义动作 远程控制:支持广域网MQTT设备控制 HomeAssistant:支持通过API控制HA下的设备

    c语言实现类似弹力球效果.rar

    c语言实现类似弹力球效果

    c语言实现的汉诺塔演示程序.rar

    c语言实现的汉诺塔演示程序

    c语言连连看游戏源码.rar

    c语言连连看游戏源码

    (源码)基于Arduino框架的自动称重系统.zip

    # 基于Arduino框架的自动称重系统 ## 项目简介 本项目是一个基于Arduino框架的自动称重系统。它利用Arduino硬件和Adafruit的ADS1115 ADC(模数转换器)库,实现了从负载单元读取重量数据并通过串行通信将数据传输到PC或其他设备的功能。项目还包含了LCD屏幕显示和LED指示灯的控制,以及对数据库的操作和Web交互的支持。 ## 项目的主要特性和功能 1. 硬件连接与通信: 项目使用了Arduino和ADS1115 ADC之间的串行通信,实现了从负载单元读取重量数据的功能。 2. 数据处理: 通过ADC读取的重量数据被处理并转换为可读的数值,然后通过串行端口发送到PC或其他设备。 3. 用户界面: 包含了LCD屏幕显示和LED指示灯的控制,用于实时显示重量数据或指示重量状态。 4. 数据库操作: 项目支持通过串行通信与数据库交互,实现数据的存储和查询。

    双鱼林jsp版超市信息管理系统.rar

    双鱼林jsp版超市信息管理系统

    C语言课程设计(成绩管理系统)源程序.zip

    C语言课程设计(成绩管理系统)源程序

    (源码)基于深度学习的投资策略优化系统.zip

    # 基于深度学习的投资策略优化系统 ## 项目简介 本项目是一个基于深度学习的投资策略优化系统,旨在通过分析和优化金融数据来提升投资决策的准确性和效率。项目涵盖了从数据获取、预处理、模型训练到结果评估的全流程,为投资者提供了一套完整的工具链。 ## 项目的主要特性和功能 1. 数据获取与处理 通过phase0.py获取金融数据。 使用phase1.py进行数据预处理和特征生成。 利用labelbasedgraph.py和labelbasedreturn.py进行数据标签计算。 2. 模型训练与评估 使用phase2.py进行模型训练和评估。 支持多种深度学习模型,如GraphCNN.py和MLP.py。 通过process.py管理模型训练和验证流程。 3. 结果可视化与分析 使用vision.py进行模型性能的可视化和评估。

    c语言课程设计-产品管理系统.zip

    c语言课程设计-产品管理系统

    技术资料分享BMP图片文件详解很好的技术资料.zip

    技术资料分享BMP图片文件详解很好的技术资料.zip

    C#ASP.NET手机端H5会议室预约系统源码 手机版会议室预约源码数据库 SQL2008源码类型 WebForm

    ASP.NET手机端H5会议室预约系统源码 手机版会议室预约源码 一、源码介绍 H5手机版会议室预约系统是一个高效快速便利的内部预约平台,让需要预定会议室的人能通过这个平 台发布预定,没有预定的人也能通过平台查看他人预定。通过后台添加账号即可登录预约平台,发布会 议室预定。 二、主要功能 后台管理包括 会议室信息管理,预约信息管理,用户信息管理。 前台手机版预约系统包括 日历查看预定信息,点击进入所选日期详细预约信息,预定会议室,我的预 约等功能模块。 后台采用模型管理功能可以使用后台对表结构进行维护,方便二次开发。 后台也可以增加部门,实现各部门之间管理员查看各自部门预约信息,用户信息等功能。

    http服务器的实现.zip

    http服务器的实现

Global site tag (gtag.js) - Google Analytics