日期:2014-05-16  浏览次数:20712 次

struts2中应用ajax
前台:

<script type="text/javascript">
function check(){
var name=document.getElementsByName("name");
alert(name);

var xmlhttp=null;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function(){

if(xmlhttp.readyState==4 && xmlhttp.status==200){
var src=xmlhttp.responseText;
alert(src);
var json=eval('('+src+')');
alert(json.age);
document.getElementById("result").innerHTML=json.name;

}else{
document.getElementById("result").innerHTML="2";

}
}
xmlhttp.open("post","/struts2_test01/ajax.action",true);
xmlhttp.send();
}
2.后台:
a.<package name="/user" extends="struts-default,json-default">注意继承json-default
b.导入struts2-json-plugin-2.1.8.1.jar
c.struts.xml配置
<!-- json 返回stream test
<action name="ajax" class="com.yang.user.Login" method="ajaxMethod">
<result name="AJAX" type="stream">
<param name="contentType">text/plain</param>
<param name="inputName">isStream</param>
<param name="bufferSize">1024</param>
</result>
</action>
-->
<action name="ajax" class="com.yang.user.Login" method="ajaxMethod">
<result name="AJAX" type="json"></result>
</action>
d.public String ajaxMethod(){

HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
ByteArrayOutputStream output=new ByteArrayOutputStream();
response.setCharacterEncoding("UTF-8");
response.setContentType(ContentType_JSON);
//1.test how to return a string
// String info="这是我的第一个AJAX测试!";
// try {
// output.write(info.getBytes("UTF-8"));
// this.isStream=new ByteArrayInputStream(output.toByteArray());
// }catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }finally{
// try {
// output.close();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// return "AJAX";
//2.test how to return a json
JSONObject json1=new JSONObject();
JSONArray jsons=new JSONArray();
json1.put("name", "yangdingcai");
json1.put("age", 20);
jsons.add(json1);

JSONObject json2=new JSONObject();
json2.put("name", "yangdingcai");
json2.put("age", 20);
jsons.add(json2);
System.out.println("json="+json1.toString());
System.out.println("jsons="+jsons.toString());

try {
response.getWriter().write(json2.toString());
response.getWriter().flush();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
response.getWriter().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return "AJAX";
}