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