1.

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3 
 4   
 5   <servlet>
 6         <servlet-name>dwr-invoker</servlet-name>
 7         <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
 8         <init-param>
 9             <param-name>debug</param-name>
10             <param-value>true</param-value>
11         </init-param>
12         <!-- 在服务器端启用反向Ajax -->
13         <init-param>
14             <param-name>activeReverseAjaxEnabled</param-name>
15             <param-value>true</param-value>
16         </init-param>
17         <!-- 以下两个配置主要兼容tomcat7对dwr的支持 -->
18         <init-param>
19             <param-name>crossDomainSessionSecurity</param-name>
20             <param-value>false</param-value>
21         </init-param>
22         <init-param>
23             <param-name>allowScriptTagRemoting</param-name>
24             <param-value>true</param-value>
25         </init-param>
26         <load-on-startup>1</load-on-startup>
27     </servlet>
28     <servlet-mapping>
29         <servlet-name>dwr-invoker</servlet-name>
30         <url-pattern>/dwr/*</url-pattern>
31     </servlet-mapping>
32 </web-app>

 

 

2.

 1     //发布公告
 2             function publish(){
 3                 //获取页面上name='id' 并且被选中的checkbox 至少一条公告
 4                 var checkedElts = $(":checkbox[name='id']:checked");
 5                 if(checkedElts.length==0){
 6                     $("#message").text("请至少选择一条公告进行发布");
 7                 }else{
 8                     //发送ajax请求,发布公告
 9                     //announcementIds= 111&announcementIds=222announcementIds=333
10                     var sendData = "announcementIds=";
11                     var idArray = [];
12                     $.each(checkedElts,function(i,n){
13                         idArray.push(n.value);
14                     });
15                     sendData += idArray.join("&announcementIds=");
16                     //alert(sendData);
17                     $.ajax({
18                         url:"${pageContext.request.contextPath}/announcement/publish.action",
19                         type:"post",
20                         data:sendData,
21                         beforeSend:function(){
22                             $("#message").text("正在发布公告请稍后...");
23                             return true;
24                         },
25                         success:function(jsonObject){
26                             if(jsonObject.success){
27                                 $("#message").text("发布成功");
28                                 displayData(0);
29                             }else{
30                                 $("#message").text("发布失败");                                
31                             }
32                         }
33                     });                    
34                 }
35             }
36 
37 
38  <input name="button6" type="button" value="发布" onclick="publish();"/>

 

 1 package com.bjpowernode.egov.web.action;
 2 
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7 
 8 import javax.annotation.Resource;
 9 
10 import org.apache.struts2.convention.annotation.Action;
11 import org.apache.struts2.convention.annotation.Namespace;
12 import org.apache.struts2.convention.annotation.Result;
13 import org.springframework.context.annotation.Scope;
14 import org.springframework.stereotype.Controller;
15 
16 import com.bjpowernode.egov.Constant;
17 import com.bjpowernode.egov.domain.Announcement;
18 import com.bjpowernode.egov.domain.User;
19 import com.bjpowernode.egov.service.AnnouncementService;
20 import com.bjpowernode.egov.util.DateUtil;
21 import com.bjpowernode.egov.vo.PaginationVO;
22 
23 @Controller
24 @Namespace("/announcement")
25 @Scope("prototype")
26 public class AnnouncementAction extends BaseAction {
27     
28     @Resource(name="announcementService")
29     private AnnouncementService announcementService; 
30     
31     private Announcement announcement;
32     
33     private Integer pageNo;
34     private Integer pageSize;
35     private String title;
36     private String publisherName;
37     
38     private String[] announcementIds;
39     
40     public void setAnnouncementIds(String[] announcementIds) {
41         this.announcementIds = announcementIds;
42     }
43 
44     public void setPageNo(Integer pageNo) {
45         this.pageNo = pageNo;
46     }
47 
48     public void setPageSize(Integer pageSize) {
49         this.pageSize = pageSize;
50     }
51 
52     public void setTitle(String title) {
53         this.title = title;
54     }
55 
56     public void setPublisherName(String publisherName) {
57         this.publisherName = publisherName;
58     }
59 
60     public Announcement getAnnouncement() {
61         return announcement;
62     }
63 
64     public void setAnnouncement(Announcement announcement) {
65         this.announcement = announcement;
66     }
67 
68 
69     
70 
71     @Action("publish")
72     public String publish()throws Exception{
73         Map<String,Object> jsonMap = new HashMap<String,Object>();
74         try {
75             announcementService.publish(announcementIds);
76             jsonMap.put("success", true);
77         } catch (Exception e) {
78             e.printStackTrace();
79             jsonMap.put("success", false);
80         }
81         return jsonOut(jsonMap);
82     }
83     

 

 

6

 1     @Override
 2     public void publish(String[] announcementIds) {
 3         for (String announcementId : announcementIds) {
 4             Announcement announcement = announcementDao.getById(announcementId);
 5             announcement.setStatus("已发布");
 6             announcement.setPublishTime(DateUtil.getSystemTime());
 7             //推送
 8             AjaxPushUtil.push(announcement.getId(), announcement.getTitle());
 9         }
10     }

 

 

 1 package com.bjpowernode.egov.util;
 2 
 3 import org.directwebremoting.Browser;
 4 import org.directwebremoting.ScriptSessions;
 5 import org.directwebremoting.ServerContextFactory;
 6 
 7 public class AjaxPushUtil {
 8     private AjaxPushUtil() {
 9     }
10 
11     public static void push(final String id,final  String title) {
12         // 推向的页面 (目前我们要调用的是reverseAjax.html中的函数)
13         String page = ServerContextFactory.get().getContextPath()+ "/down.action";
14         
15         // 使用一个新的线程完成推送的任务
16         Browser.withPage(page, new Runnable() {
17             public void run() {
18                 ScriptSessions.addScript("showText('"+id+"','"+title+"')");
19             }
20         });
21     }
22 }

 

 

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <html>
 4     <head>
 5         <base href="${pageContext.request.scheme}://${pageContext.request.serverName }:${pageContext.request.serverPort }${pageContext.request.contextPath }/">
 6         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 7         <style type="text/css">
 8             body {
 9                 margin-left: 0px;
10                 margin-top: 0px;
11                 margin-right: 0px;
12                 margin-bottom: 0px;
13             }
14             
15             .STYLE1 {
16                 color: #767a7a;
17                 font-size: 12px;
18             }
19         </style>
20         <link href="jquery/testSlider/jQuery.textSlider.css" rel="stylesheet" type="text/css"/>
21         <script type="text/javascript" src="jquery/jquery-1.7.2.min.js"></script>
22         <script type="text/javascript" src="jquery/testSlider/jQuery.textSlider.js"></script>
23         <script type="text/javascript" src="dwr/engine.js"></script>
24         <script type="text/javascript">
25             //在客户端启用反向ajax
26             //方法来启动该页面的ReverseAjax功能。这时候默认采用的将是comet的方式来完成页面内容的推送
27             dwr.engine.setActiveReverseAjax(true);
28             $(function(){
29                 $("#scrollDiv").textSlider({line:1,speed:100,timer:1000});
30             });
31             //该js函数会被java代码调用
32             function showText(id,title){
33                 $("#announcementList").append("<li><a href='javascript:void(0)' style='color: gray;text-decoration: none'>"+title+"</a></li>");
34             }
35         </script>
36     </head>
37     <body>
38         <table width="100%" border="0" cellspacing="0" cellpadding="0">
39             <tr>
40                 <td width="22" height="30">
41                     <img src="images/main_38.gif" width="22" height="30" />
42                 </td>
43                 <td background="images/main_40.gif">
44                     <table width="100%" border="0" cellspacing="0" cellpadding="0">
45                         <tr>
46                             <td width="200" height="30">
47                                 &nbsp;
48                             </td>
49                             <td></td>
50                             <td width="300">
51                                 <div align="right" class="STYLE1" id="scrollDiv">
52                                         <div class="scrollText">
53                                           <ul id="announcementList">
54                                           </ul>
55                                         </div>
56                                 </div>
57                             </td>
58                         </tr>
59                     </table>
60                 </td>
61                 <td width="28">
62                     <img src="images/main_43.gif" width="28" height="30" />
63                 </td>
64             </tr>
65         </table>
66     </body>
67 </html>

 

posted on 2017-10-26 12:20  Sharpest  阅读(399)  评论(0编辑  收藏  举报