struts2实现异步调用机制

时间:2022-12-18 19:48:29

主要是用XML和json方式进行解析,前端可以采用jquery

跟以前的做法并无两样.只是配置struts.xml文件的时候不用配置result

用struts中struts2-json-plugin的jar包,应用他可以用另外一种方法.对json进行处理,此时写的Action跟平时写的流程没什么区别,可以转向,不过此时配置的时候自己的package就可以extends json-default,result的type为json.可以查看它里面的struts-plugin.xml,可以看到json-default也继承了struts-default包嘛

可以配置如下:

<package name="struts2_ajax" extends="json-default">

<action name="getJsonAction2" class="com.shengsiyuan.action.json.GetJsonAction2">
<result name="success" type="json">

<param name="excludeProperties">address</param>//可以配置哪些属性你想传过去,哪些不想传过去, 这里排队掉address属性,即这个信息不会传过去

</result>
</action>

</package>

代码如下:

public class GetJsonAction2 extends ActionSupport
{
private String name;

private int id;

private int age;

private String address;


public String getName()
{
return name;
}


public void setName(String name)
{
this.name = name;
}


public int getId()
{
return id;
}


public void setId(int id)
{
this.id = id;
}

@JSON(name="myAge")//还提供了注解的支持,在这里指定了返回给客户端的时候是叫myAge,在客户端得到的时候应该这样:var age = people.myAge;
public int getAge()
{
return age;
}


public void setAge(int age)
{
this.age = age;
}


public String getAddress()
{
return address;
}


public void setAddress(String address)
{
this.address = address;
}

@Override
public String execute() throws Exception
{
this.id = 1;
this.age = 30;
this.address = "beijing";

return SUCCESS;
}
}