3种方式
1.直接使用response对象进行内容的输出
2.在action中提供一个流对象 ,把内容放入流中
publicclass AjaxByStrutsInputStreamActionextendsActionSupport {
privateInputStream inputStream;
publicInputStream getInputStream() {
returninputStream;
}
public String test(){
inputStream=new StringBufferInputStream("sram");//将内容放入流中
returnSUCCESS;
}
}在struts.xml文件中为 这个action 的方法配置一个流对象 result的返回类型改为stream
<action name="test"method="test"class="com.sram.actions.AjaxByStrutsInputStreamAction">
<result type="stream">//表示的访问action返回内容的类型是流
<param name="inputName">inputStream</param>//指定读取内容的对象
</result>
</action>
3
依赖于struts中的自带插件
Struts中自带的有一个插件,此插件是专门用来处理json数据的,也可以做出Ajax请求的响应:struts2-json-plugin-2.3.15.1.jar, 注意版本问题
后台java代码
publicclass AjaxByPluginActionextendsActionSupport{
privateString result;//负责传输数据内容的
public String testAjax(){
Useruser=newUser("张三","123","123");
this.result=newGson().toJson(user);//返回json格式的数据
return"success";
}
publicvoidsetResult(String result) {
this.result= result;
}
publicString getResult() {
returnresult;
}
}struts.xml 配置文件中 注意 这个包 extends 的是 json-default result结果的返回类型为json
<package name="testjson"namespace="/"extends="json-default">
<action name="plug"method="testAjax"class="com.sram.actions.AjaxByPluginAction">
<result type="json">
<paramname="root">result</param>// 这里result表示 java代码中result接收的数据
</result>
</action>
</ package >