您的位置:首页 > 编程语言 > Java开发

关于Struts2和ajax

2015-10-04 16:01 543 查看
分两部分:

第一种:当提交和返回参数不为json时:

$.post(

"testAjax.action",

$("#f1").serializeArray(),

function(data){

$("#show").html("result:"+"<h1>"+data+"</h1>");

},

"text");

action:

//Struts2用二进制的流来输出所有结果

private InputStream is;(set,get方法)

//返回输出结果的方法

public InputStream getResult(){

return is;

}

//接收post参数

private String username;

private String password;(set,get方法)

public String myLogin() throws Exception{

System.out.println(username);

System.out.println(password);

if(this.username.equals("yan") && this.password.equals("root")){

this.is = new ByteArrayInputStream("成功登陆".getBytes("utf-8"));

}else{

this.is = new ByteArrayInputStream("登陆失败".getBytes("utf-8"));

}

return "login";

}

Struts.xml中package正常写,action如下,result type=stream

<action name="testAjax" class = "com.struts2_0008ajax_json.action.AjaxStream" method = "myLogin">

<result type = "stream" name = "login">

<param name="contentType">text/html</param>

<param name="inputName">result</param>

</result>

</action>

第二种:当使用json时

var url = "http://localhost:8080/struts2_0008ajax_json/myJson.action";

var param = {

"bookname":$("#bookname").val(),

"introduce":$("#introduce").val(),

"writer":$("#writer").val()

};

alert(param.bookname);

$.post(

url,

param,

function(data){

console.log(data);

$("#show").html("<p>书名:"+data.bookname+"</p>"

+"<p>介绍:"+data.introduce+"</p>"

+"<p>作者:"+data.writer+"</p>"

+"<p>回传:"+data.JsonMap.hello+"</p>");

},

"json"

);

package com.struts2_0008ajax_json.action;

import java.util.HashMap;

import java.util.Map;

import org.apache.struts2.json.annotations.JSON;

import com.opensymphony.xwork2.ActionSupport;

action:

public class myJson extends ActionSupport{

private Map<String,String> map = new HashMap<String,String>();

private String bookname;

private String introduce;

private String writer;

@JSON(name = "JsonMap")//改变返回的json串的名字

public Map<String, String> getMap() {

return map;

}

public void setMap(Map<String, String> map) {

this.map = map;

}

public String getBookname() {

return bookname;

}

public void setBookname(String bookname) {

this.bookname = bookname;

}

public String getIntroduce() {

return introduce;

}

public void setIntroduce(String introduce) {

this.introduce = introduce;

}

public String getWriter() {

return writer;

}

public void setWriter(String writer) {

this.writer = writer;

}

public String mJson(){

System.out.println("json");

map.put("hello", "json--struts");

return "success";

}

}

Struts:

<package name="myPackage" namespace="/" extends="json-default">

<action name="myJson" class = "com.struts2_0008ajax_json.action.myJson" method = "mJson">

<result type = "json">

<param name="noCache">true</param>

<param name="contentType">text/html</param>

</result>

</action>

</package>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: