struts2整合jquery应用ajax

1、ajax如何传递参数(以$.post为例)

就是一般ajax传参方式进行参数传递,如下蓝色字体:

$.post("ajaxRequest.action",{username:$username.val()},callback);

2、action如何获取ajax传递过来的参数

Ajax传递的参数都是在request中,action获取方式和之前获取页面参数的方式一样,注入的方式就行,记得写setter、getter方法,如下

private String username = null;
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

3、action如何向ajax传递内容(页面传递内容)

HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html;charset=UTF-8");   
		response.setCharacterEncoding("UTF-8");// 防止弹出的信息出现乱码  
		PrintWriter writer = response.getWriter();
	    String json= "{exist:\""+data+"\"}";
	writer.write(json);

通过writer向页面写内容,将json的内容写到页面

4、ajax如何获取action传递过来的内容

通过回调函数来接收内容:

function callback(json){
					var json = eval("("+json+")"); 
					if("0" == json.exist){
						$li_username.append("<a name='username' class='blue'>此用户名可以用</a>");
					}else{
						$li_username.append("<a name='username' class='red'>此用户名已被注册!</a>");
					}
	         		}

此回调函数的json参数就接收了action传递过来的内容

注意点及错误

a)如果默认调用的是action的execute方法(action继承ActionSupport),返回值要写成:returnnull,不然回报找不到action或result的错误;

b)Struts.xml配置文件写成

      
<package name="jquery" extends="struts-default">
        <action name="ajaxRequest"  class="bruce.lee.jquery.Register">
        </action>
	    </package>

c)nodefaultparameterdefinedforresultoftypejson错误

当action的resulttype为json,并且写成如下形式的时候,会报警告:

<resulttype="json">

</result>

解决方法:

修改为如下形式:

<resulttype="json"></result>或<resulttype="json"/>

Error500--InternalServerError错误

500错误,是服务器端的错误,基本上是服务器端代码有错,还有极少部分是服务器出错

解决方法:

调试服务器端程序,将错误找出来,若程序确实没错误,则将服务器关掉后重启

相关推荐