Struts2与ajax【未完成】

之前项目中每次都是直接使用ajax进行异步处理,现在觉得有必要梳理下思路

1、页面js请求

$.ajax({
   url:"addRy.action",
   data:{"xm":"王石"},
   dataType:"json",
   type:"post",
   async: false,
   success:function(data){
         alert(data);
   },
   error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert("error");
    }
   });

url:请求的处理地址

data:传入参数

dataType:URL返回值是以JSON的格式传过来的,然后在页面上解析时就要采取JSON格式来展示

type:提交方式post/get

async:默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面的脚本(另一个线程)

success:ajax请求成功处理的回调函数,回调函数中的data参数为json对象

error:ajax请求失败处理的回调函数

ajax的回调函数还有complete

2、Struts的xml配置文件

<package name="ajax" extends="json-default">
        <action name="addRy"      class="com.dsideal.rs.RyAction">
            <result type="json"></result>
        </action>
    </package>

3、action类

public class RyAction extends ActionSupport
{

private List<String[]> list;

public List<String[]> getList() { 
                return list; 
            }

@Override 
            public String execute() { 
                list= new ArrayList<String[]>(); 
                list.add("a");

list.add("b");

list.add("c");

return SUCCESS; 
        } 
}

根据上面的代码,ajax的success中的data获取到的则是action中所有写明get、set变量所组成的的json串。

还有另一种配置,如果xml中,这么写

<result type="json"> 
<param name="root">list</param> 
</result>

那么JSON类型结果的参数中加入“root”参数可以设定输出JSON结果的根,以上述情况为例,如果没有“root”参数,输出将为“{ "list": [ ["a", "b","c"]] }”,加了之后变就会成“[ ["a", "b","c"]]  ”。

1、测试时需要注意,如果action定义的变量为json,并且不配置root,是否会进行error函数

2、对于页面中写的如果不是dataType为json时,是否还需要将配置文件放在package为json的包中,与项目中内容进行区分

3、action中的get和set是否全部必须

时间: 2024-08-05 15:51:10

Struts2与ajax【未完成】的相关文章

Struts2对AJAX的支持

一.简介        struts2确实一个非常棒的MVC框架.这里部分记述一下struts2对AJAX的支持.实现AJAX有两种方式,一种是使用原生的javascript代码实现,一种是使用第三方的ajax框架(jquery,dwr,dojo等),jquery和dwr比较简单,做项目时也会经常用到.Struts2并没有发明新的AJAX框架,而是使用两个较为流行的框架,即Dojo框架和DWR框架. Dojo是一个用javascript语言实现的开源DHTML工具包,是一个客户端的AJaX框架,

struts2学习笔记(8)-------struts2的ajax支持

struts2支持一种stream类型的Result,这种类型的Result可以直接向客户端浏览器响应二进制,文本等, 我们可以再action里面生成文本响应,然后在客户端页面动态加载该响应即可. 直接看例子: public class LoginAction { private String user; private String pass; private InputStream inputStream; public InputStream getInput(){ return inpu

博客:Struts2与ajax整合之缺点

之前有篇博客介绍了Struts2与ajax的整合,链接Struts2之-集成Json插件实现Ajax 这里不再累述,看以上博客. 此篇博客想吐槽一下Struts2的缺点--错误处理做的不好,怎么做的不好,哪里做的不好,通过Struts2中Ajax的应用缺陷来介绍. 先提出它的缺点,后面再做出证明. 1,Struts2与Ajax整合的缺点 无论采用$.post还是$.ajax都捕获不到服务器产生的错误($.ajax捕获错误在servlet能做到),是struts2内部设计的不好,不是Ajax的问题

struts2,json,ajax整合内容记录

使用ssh三大框架整合时关于struts2,json,ajax整合内容记录.这里写主要部分代码 action部分: 注意事项,action部分的返回值要有set和get方法,否则会报错. package com.hcj.action; import net.sf.json.JSONObject; import com.hcj.dto.User; import com.hcj.service.UserService; import com.opensymphony.xwork2.ActionSup

struts2结合ajax实现无刷新登录

1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!-- 必须加入struts2-dojo-plugin-相应版本.jar 才能使用ajax--> <%@taglib prefix=&qu

Struts2结合Ajax实现登录

前言:Struts2作为一款优秀的MVC框架,和Ajax结合在一起,用户就会有良好的体验,本篇博文我们来模拟一个简单的登录操作,实现Ajax的异步请求,其中Struts2进行的是链接处理,Action动态处理请求,Ajax负责进行异步处理,传送数据与返回数据,其中主要使用的技术有:struts2+Ajax+Jquery+Css,好吧,废话不多说,让我们来看看这个实例吧. 第一步:新建一个Dynamic web project,然后起名:Struts2Ajax,引入相关的jar包,在web.xml

Struts2之ajax初析

Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,当然这只是在我们需要JSON的时候才会显得流光溢彩. 首先不谈Struts2的原生支持,我们自己写一个ajax示例,使用异步请求,直接请求action动作: InfoAction.java package cn.codeplus.action; import

Struts2 处理AJAX请求

Struts2整合AJAX有2种方式: 使用type="stream"类型的<result> 使用JSON插件 使用type="stream"类型的<result>  获取text 前端 <body> <form> 学号:<input type="text" id="no"><br /> 姓名:<input type="text"

[JavaWeb基础] 017.Struts2 和 ajax交互简介

在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术Ajax,那么我们的Struts2框架在这一方面是如何实现的呢,其实也很简单,下面我带大家一起了解下. 1.首先我们需要导入两个依赖包json-lib 和 struts2-json-plugin,这是对json支持的解析包. 2.我们需要创建一个Action类,和其他的都一样 package com.babybus.sdteam.action; imp