`

一个项目中使用到的AJAX+STRUTS例子

    博客分类:
  • AJAX
阅读更多

    这星期一接到一个任务:把首页上的告警列表部分的查询改用AJAX实现,目的是降低网络和服务器的IO

    项目中使用到了AJAXprototype.js框架和JSON技术。

1

function searchAlertSeverity(severityId){

    action_url="SearchAlertSeverityAction.do?severityId="+severityId;

    var curl='<c:url value="'+action_url+'"/>';

    new Ajax.Request(curl, { method:'get',

              requestHeaders: {Accept: 'application/json'},

              onSuccess:showResponse});

}

 

function showResponse(transport){

    //在刚开始用“eval('('+transport.responseText+')')transport.responseText.parseJSON()”来将字符串转化为JSON对象的,但是运行无效。费了好半天,才发现parseJSON()\yy\\方法是json.js中的方法,而我没有引入这个js文件。

     //prototype.jsjson的支持非常好,evalJSON()方法就是prototype.js中的,作用和parseJSON()一样   

    var alertList=transport.responseText.evalJSON();将服务器返回的字符串转化为JSON对象。

    createAlertTab(alertList);   

}

function createAlertTab(json){

    var len=json.alerts.length ;

    var tbody=document.getElementById('freshThis');

    // 删除原有数据

    var _tr=tbody.getElementsByTagName("tr");

    while(_tr.length!=0){

        // _tr[0].parentNode才能保证每次取到正确的子节点

        _tr[0].parentNode.removeChild(_tr[0]);

    }     

        td.innerHTML='';   

        message_tr.appendChild(td);

        for(i=0;i<len&&i<4;i ++){

           var td_0=document.createElement('td'); 

           var td_1=document.createElement('td');

           var td_2=document.createElement('td');

           var td_3=document.createElement('td');

           var td_4=document.createElement('td');

           td_0.innerHTML='<div class="svt" style="background-color:'+json.alerts[i]["severityColor"]+'">&nbsp;</div>';

           td_1.innerHTML=json.alerts[i]["lastHappenTime"];

           td_2.innerHTML=json.alerts[i]["deviceSno"];

           td_3.innerHTML=json.alerts[i]["alertTitle"];

           td_4.innerHTML=json.alerts[i]["alertType"];

   

           var tr=document.createElement('tr');

           tr.appendChild(td_0);

           tr.appendChild(td_1);

           tr.appendChild(td_2);

           tr.appendChild(td_3);

           tr.appendChild(td_4);

           tbody.appendChild(tr);

       }

}

jsp页面部分代码:

<table id="ad" width="100%" border="0" cellpadding="0" cellspacing="0">

   <thead>

      <tr>

       <th width="12%">告警级别</th>

       <th width="15%">发生时间</th>

       <th width="20%">设备序列号</th>

       <th width="20%">告警标题</th>

       <th width="15%">告警类型</th>

      </tr>

    </thead>

    <tbody id="freshThis">

      <c:forEach var="vo" items="${PAGER_ITEMS}" end="4">

       <tr>

       <td>

       <div class="svt"

       style="background-color:${vo.severityColor}">&nbsp;</div>

       </td>                                  <td><fmt:formatDate value='${vo.lastHappenTime}'          pattern="yyyy-MM-dd HH:mm:ss" /></td>

                                          <td>${vo.deviceSno}</td>

                                          <td>${vo.alertTitle}</td>

                                          <td>${allAlertType[vo.alertType]}</td>

     </tr>

    </c:forEach>

    //////////点击超链接部分刷新首页面的内容。

    <a href="#"                                        onclick="javascript:searchAlertSeverity        (${alertSeverity.severityId})">

  <div class="svt"

    style="background-color:${alertSeverity.severityColor}"></div>

    ${alertSeverity.severityName}</a></td>

    </tbody>

   </table>

 

 

//////////SearchAlertSeverityAction .java

package com.huaxia.inm.bbms.actions.alert;

 

import java.io.PrintWriter;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.List;

 

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.json.simple.JSONArray;

import org.json.simple.JSONObject;

 

import com.huaxia.inm.bbms.beans.alert.Alert;

import com.huaxia.inm.bbms.domain.TbAdUser;

import com.huaxia.inm.bbms.domain.TbUser;

import com.huaxia.inm.bbms.service.AlertService;

import com.huaxia.inm.bbms.utils.Contents;

 

/**

 *

 * @author jinyy.

 *

 */

public class SearchAlertSeverityAction extends Action {

   

    public static final String DATE_PATTERN = "yyyy-MM-dd HH:mm:ss"; 

    private DateFormat dateFormat;

 

    @SuppressWarnings("unchecked")

    @Override

    public ActionForward execute(ActionMapping mapping, ActionForm form,

            HttpServletRequest request, HttpServletResponse response)

            throws Exception {

        try {

            response.setContentType("text/html;charset=UTF-8");

            response.setHeader("Cache-Control", "no-cache");

            response.setCharacterEncoding("UTF-8");

            request.setCharacterEncoding("GBK");

            String severityId = (String) request.getParameter("severityId");

            List<Alert> list    alertService.getAdUserCurAlertlist(Integer

                            .parseInt(severityId));;

            PrintWriter out = response.getWriter();

            JSONObject object = new JSONObject();

            JSONArray js = new JSONArray();

            dateFormat=new SimpleDateFormat(DATE_PATTERN);

            for (Alert alert : list) {

                JSONObject objTemp = new JSONObject();

                String severityColor = alert.getSeverityColor();

                objTemp.put("severityColor", severityColor);

                objTemp.put("lastHappenTime", dateFormat.format   (alert.getLastHappenTime()));

                objTemp.put("deviceSno", alert.getDeviceSno());

                objTemp.put("alertTitle", alert.getAlertTitle());

                String alertType = alert.getAlertType());

                objTemp.put("alertType", alertType);

                js.add(objTemp);

            }

            object.put("alerts", js);

            out.print(object.toString());

        } catch (Exception e) {

            e.printStackTrace();

        }

        return null;

    }

}

1
0
分享到:
评论

相关推荐

    jquery + struts1 + ajax学习例子

    总的来说,"jquery + struts1 + ajax学习例子"是一个很好的教学资源,它涵盖了前端交互、后台处理和异步通信的关键技术。通过深入研究这个例子,开发者可以更熟练地掌握这些技能,并将其应用于实际项目中,提升Web...

    Ajax+Struts+HIbernate实现省市联动

    在这个项目中,Struts负责处理用户请求,将Ajax发送的数据转发到相应的Action,然后将处理结果返回给前端。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过Hibernate,...

    struts2+jquery+json+ajax例子

    总结起来,"struts2+jquery+json+ajax"的例子展示了如何利用这些技术协同工作,实现一个无刷新的登录界面,提供流畅的用户体验。通过Struts2处理业务逻辑和数据验证,jQuery和Ajax负责前后端的通信,JSON作为数据...

    struts2+ajax+jquery

    在Struts2的配置文件(struts.xml)中,我们需要定义一个对应的Action,该Action将处理来自Ajax请求的数据,并返回响应。例如: ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; ...

    Ajax+Struts+hibernate二级联动查询(完整源码例子)

    【资源介绍】:Ajax+Struts+hibernate二级联动查询(完整源码例子) 【备注】: 亲爱的下载用户: 谢谢您光临CSDN阿Q资源中心! 本中心发布的资源均是经过本人测试通过后才发布的,请放心下载。如果您有不...

    Ajax+Struts使用Json数据心得

    本文将详细讲解在Struts2框架中使用Ajax和JSON进行数据交互的心得体会。 首先,要启用Struts2对JSON的支持,你需要在项目中引入`struts2-json-plugin.jar`库。这个库包含了处理JSON数据所需的类和方法,可以从...

    JSON实例(ajax+struts)

    总的来说,这个实例展示了如何在Struts和AJAX环境中使用JSON进行数据交互。通过AJAX,前端可以异步地向服务器发送请求,获取JSON数据,然后在不刷新整个页面的情况下更新部分视图。而Struts框架则负责处理请求,调用...

    jquery ajax +struts1.3

    在Struts配置文件(如struts-config.xml)中定义一个Action,例如`MyAction.java`,该Action负责处理业务逻辑并返回结果。 ```xml ``` 2. **编写Action类**: `MyAction.java`中需要定义一个执行方法,比如`...

    struts2+jquery+ajax

    struts2+jquery+ajax实现验证功能

    struts2+Hibernate+jauery+Ajax+Json+mysql例子

    一个部门和员工信息管理的例子,页面上的所有数据全部采用动态加载,增删改查操用全部在一个页面上实现,没有页面跳转。前台页面和后台服务器交互采用json格试传输。 初学jquery的可以下载看一下

    使用Jquery,Ajax+Struts+Spring+Ibatis写的一个无限级树,供大家参考一下

    本示例是基于jQuery、Ajax、Struts、Spring和iBatis这五个核心技术实现的一个无限级树的案例。下面我们将深入探讨这些技术及其在无限级树中的应用。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历...

    Struts2之ajax初析的并结合jquery一个例子

    Struts2之ajax初析的并结合jquery一个例子 Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单...

    ajax+struts2无刷新取后台

    一个简单的例子是,用户在前端输入表单信息,点击提交按钮时,通过Ajax发送请求到Struts2 Action,Action验证数据并返回结果。如果数据有效,更新页面显示“提交成功”;如果数据无效,返回错误信息,前端展示错误...

    Struts+Jquery+Ajax+Json应用实例

    **Struts框架**:Struts是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。Struts主要负责控制应用程序的流程,通过Action类处理用户请求,并将结果转发到...

    jquery ajax json struts2最简单例子测试成功

    在这个项目中,可能包含了一个使用jQuery的HTML页面,用于发起AJAX请求。 4. **src目录**:这是源代码目录,通常包含Java代码和其他源文件。在这个项目中,可能有Struts2的Action类和相关的Java代码。 5. **....

    JFreeChart+Struts2实践例子

    最后一种方法是集成到Struts2的Ajax功能中。通过JSON或XML响应,将图表数据发送到前端,然后使用JavaScript库(如jQuery或D3.js)在客户端渲染图表,实现异步加载和更新。 在实际开发中,我们还需要注意一些关键点...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    总的来说,"Struts2+json+ajax整合例子"是一个实用的教学资源,帮助开发者了解如何在实际项目中利用这些技术进行高效的Web开发。通过学习和实践这个例子,开发者可以提升其在Web应用程序开发中的技能。

    使用struts2+JQuery实现的简单的ajax例子

    在`struts.xml`配置文件中,我们需要定义一个Action,该Action将处理Ajax请求。例如,我们可以创建一个名为`AjaxAction`的类,里面包含一个返回JSON数据的方法。在`struts.xml`中配置这个Action,确保它能接收GET或...

    struts2+jquery+ajax+servlet

    在提供的示例中,“struts2Ajax”可能包含了两个项目,一个使用jQuery、Ajax和Servlet,另一个引入了Struts2。这两个例子可以帮助初学者理解如何在实际开发中整合这些技术。 对于“jQuery+Ajax+Servlet”的示例,...

    AJAX例子 struts hibernate 开发

    【标题】"AJAX例子 struts hibernate 开发"揭示了这个压缩包文件包含的是一个实际的开发项目,其中融合了AJAX、Struts和Hibernate这三种技术的使用。AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个...

Global site tag (gtag.js) - Google Analytics