`

struts下实现ajax的实例

阅读更多

 

http://www.it-eye.nl/weblog/2005/12/13/ajax-in-struts-implementing-dependend-select-boxes/

script

 

script:
<script language="javascript">
 var req;
 /*
  * Get the second options by calling a Struts action
  */
 function retrieveProjectOptions(){
   
    firstBox = document.getElementById('firstBox');
   
    //Nothing selected
    if(firstBox.selectedIndex==0){
      return;
    }
    selectedOption = firstBox.options[firstBox.selectedIndex].value;
    //get the (form based) params to push up as part of the get request
    url="retrieveProjectOptionsAjaxAction.do?selectedOption="+selectedOption;
 
    //Do the Ajax call
    if (window.XMLHttpRequest){ // Non-IE browsers
      req = new XMLHttpRequest();
      //A call-back function is define so the browser knows which function to call after the server gives a reponse back
      req.onreadystatechange = populateSecondBox;
      try {
          req.open("GET", url, true); //was get
      } catch (e) {
         alert("can not connect to server");
      }
      req.send(null);
    } else if (window.ActiveXObject) { // IE     
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
        req.onreadystatechange = populateSecondBox;
        req.open("GET", url, true);
        req.send();
      }
    }
  }
 
  //Callback function
  function populateSecondBox(){
      document.getElementById('secondBox').options.length = 0;

    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
         textToSplit = req.responseText;
        
         if(textToSplit == '803'){
            alert("No select option available on the server");
        }
          //Split the document
          returnElements=textToSplit.split("||");
          //Process each of the elements    
          for(var i=0;i<returnElements.length;i++){
             valueLabelPair = returnElements[i].split("|");
             document.getElementById('secondBox').options[i] = new Option(valueLabelPair[1], valueLabelPair[0]);
          }
        } else { 
            alert("Bad response by the server");
        }   
    }
    }
</script>

 

form

<html:form action="/addModule">
        小组 : <html:select property="group" onchange="retrieveProjectOptions()"
                styleId="firstBox" styleClass="mandatory">
                <html:option value="-1">请选择</html:option>
                <html:options collection="groups" labelProperty="groupName"
                    property="groupId" />
            </html:select>
            <html:errors property="group" />
            <br />
        所属项目 : <html:select property="project" styleId="secondBox"
                styleClass="mandatory">
                <html:option value="nothing">-First choose above-</html:option>
            </html:select>
            <html:errors property="project" />
            <br />
            模块名 : <html:text property="moduleName" />
            <html:errors property="moduleName" />
            <br />
            模块描述 : <html:text property="description" />
            <html:errors property="description" />
            <br />
            <html:hidden property="isSubmit" value="true" />

            <html:submit value="提交" />  
        </html:form>
 

struts config

 

struts config
<action path="/retrieveProjectOptionsAjaxAction"
            type="com.baidu.platform.project.action.RetrieveProjectOptionsAjaxAction">

        </action>

 

Action

 

package com.baidu.platform.project.action;

import java.io.PrintWriter;
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 com.baidu.platform.entities.ProjectDetail;
import com.baidu.platform.service.ProjectService;

public class RetrieveProjectOptionsAjaxAction extends Action {
    /**
     * This is the main action called from the Struts framework.
     *
     * @param mapping
     *            The ActionMapping used to select this instance.
     * @param form
     *            The optional ActionForm bean for this request.
     * @param request
     *            The HTTP Request we are processing.
     * @param response
     *            The HTTP Response we are processing.
     * @throws javax.servlet.ServletException
     * @throws java.io.IOException
     * @return
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        String selectedOption = request.getParameter("selectedOption");
        PrintWriter out = response.getWriter();
        // Check of het soortId wel correct is
        if ((selectedOption.trim().length() == 0)) {
            out.print("803");
        } else {
            List<ProjectDetail> options = ProjectService.getProjectsInGroup(Integer.parseInt(selectedOption));
            // Make a String representation where each option is seperated by '||' and a value and a label by '|'
            String outLine = makeOutputString(options);
            out.print(outLine);
            System.out.println(outLine);
        }
        return null;
    }

    private String makeOutputString(List<ProjectDetail> options) {
        String result = "";
        boolean first = true;
        for (ProjectDetail project : options) {
            if (!first) {
                result += "||";
            }
            first = false;
            result = result + project.getProjectId() + "|" + project.getProjectName();
        }
        return result;
    }

}
 
分享到:
评论

相关推荐

    struts2的Ajax实现注册验证

    总的来说,Struts2和Ajax的结合使用使得Web应用能够提供更快速、更直观的用户交互,而这个代码和jar包组合可能就是实现这一目标的一个实例。通过阅读提供的文档和使用示例,你可以深入了解并实践这一技术,从而提升...

    struts2 jqurey ajax简单实例

    在这个"struts2 jqurey ajax简单实例"中,我们将探讨如何将这三个技术结合,以实现一个动态且高效的Web应用。 首先,Struts2中的Action类是业务逻辑的核心。当你在页面上触发一个事件,比如点击一个按钮,这个事件...

    struts+ajax实例

    总的来说,这个实例展示了如何在传统的Struts2环境中利用AJAX增强用户体验,实现实时的表单验证。对于初学者来说,这是一个很好的起点,可以帮助他们理解前后端交互的工作流程,以及如何在Struts2中处理AJAX请求。

    基于struts2的ajax实例

    总结一下,基于Struts2的Ajax实例展示了如何利用Struts2框架处理客户端的异步请求。通过整合JavaScript和Struts2,我们可以创建交互性更强、响应速度更快的Web应用程序,同时减少了不必要的页面刷新,提升了用户体验...

    struts2中AJAX实现

    7. **示例代码**:在提供的压缩包文件“struts2中实现AJAX的小实例”中,可能包含了一个简单的Struts2 Action、对应的JSP页面以及JavaScript代码。Action类可能有一个返回JSON数据的方法,JSP页面可能包含一个AJAX...

    Jquery struts2 json 实现ajax

    标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...

    Struts2+Jquery+Ajax

    8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...

    struts 2.0与ajax 的实例

    Struts 2.0 是一个基于 Model-View-Controller(MVC)架构的Java web框架,而 AJAX(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下更新部分网页内容的技术。在这个实例中,我们将深入探讨 ...

    struts2 ajax 实例

    通过以上步骤,我们可以实现一个简单的Struts2 Ajax实例,利用Ajax实现页面的动态更新。当然,实际应用中可能会涉及到更复杂的业务逻辑和数据处理,但这个基础框架可以作为一个起点,帮助你理解和掌握Struts2与Ajax...

    Struts 2.1-AJAX-JSON实例

    这个实例项目展示了如何在Struts 2.1框架下,通过AJAX和JSON实现动态交互的Web应用。开发者可以通过这个实例学习如何配置Struts 2的Ajax插件,编写Action以返回JSON数据,以及在客户端使用JavaScript处理这些数据,...

    Struts2与AJAX

    当AJAX请求到达时,Struts2会自动将这个Action实例转换为JSON格式,并返回给客户端。 客户端的JavaScript可以使用XMLHttpRequest或jQuery等库发送AJAX请求,获取JSON数据,然后动态更新页面内容,实现无刷新的交互...

    Ajax实现helloworld!实例,eclipse+struts+Ajax初学者必看

    在IT行业中,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下更新部分网页内容的技术,极大地提升了用户体验。这个“Ajax实现helloworld!实例”是针对初学者的一个项目,旨在帮助他们理解...

    AjaxStruts2Json实例

    总结来说,这个AjaxStruts2Json实例展示了如何在Struts2框架下利用Ajax进行异步请求,通过JSON传递和处理数据,从而实现网页的局部刷新。实践这个实例,开发者可以更深入地理解Struts2、Ajax以及JSON在实际项目中的...

    json struts2 ajax实例代码

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使得网页实现异步更新。这使得网页应用能够更加迅速地响应...

    Struts+Jquery+Ajax+Json应用实例

    **Ajax(Asynchronous JavaScript and XML)**:Ajax允许在不刷新整个页面的情况下,与服务器交换数据并局部更新网页内容,从而实现了异步交互。在jQuery中,使用$.ajax()函数或其简化的$.get()和$.post()方法可以...

    struts2与jquery实现ajax操作

    这个struts2 实例是通过用js的一个框架jquery来实现的ajax,jquery真的不错,其中的数据传输格式用的时json,用了一个json_lib的jar包,所有所需的包都在了,下载后就能运行,对于初学struts2与ajax的朋友很有点帮助...

    Struts2+ajax+json返回list.docx

    本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`&lt;s:select/&gt;`标签)。 1. **Struts2配置**: 在`struts.xml`配置文件中,我们需要定义一个Action,...

    Struts+Hibernate+Ajax注册示例

    为了实现这个示例,你需要了解Struts的配置、Action的编写、Hibernate的实体映射、数据库交互以及Ajax的基本原理和JavaScript的DOM操作。此外,还需要熟悉Java编程和JSP/Servlets,因为Struts通常与这些技术一起使用...

    Ajax实例 struts javascript

    在Struts框架下,我们可以利用Ajax来实现异步的数据交互,提升应用的响应速度。以下三个例子展示了如何通过JavaScript配合Servlet和Action来实现Ajax功能: **例一:innerHTML的用法** 此例子展示了如何使用...

    ajax与Struts2交互实例

    使用Struts2和jQuery EasyUI实现简单CRUD系统,从零开始,从基础的ajax与Struts2的交互开始。

Global site tag (gtag.js) - Google Analytics