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错误,是服务器端的错误,基本上是服务器端代码有错,还有极少部分是服务器出错
解决方法:
调试服务器端程序,将错误找出来,若程序确实没错误,则将服务器关掉后重启
相关推荐
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo