1. 用json 不能解决的问题
有时我们用java 把json 对象用字符串拼接好后
1) 定义一个inputstream
2)定义Action
package com.bs023.msvs.action;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
/**
* 测试Action
* @author liuqing
* @version 1.0
*/
public class TestAction {
private String username;
private String password;
//写一个输出流
private InputStream json;
public String add() {
try {
//中文转码问题
this.username = "username _=======222==刘庆==qing";
this.json = new ByteArrayInputStream(this.username.getBytes());
}
catch (Exception e) {
e.printStackTrace();
}
return "add";
}
public OutputStream output() throws IOException {
return ServletActionContext.getResponse().getOutputStream();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public InputStream getJson() {
return json;
}
public void setJson(InputStream json) {
this.json = json;
}
}
2.配置文件
<action name="test" class="testAction" method="add"> <result name="add" type="stream"> <param name="contentType">text/html;charset=UTF-8</param> <param name="inputName">json</param> </result> </action>
3. 运行结果
http://127.0.0.1:8080/upsn/usermanager/test.action
username _=======222==刘庆==qing
4.方法二使用ServletActionContext
package com.bs023.msvs.action;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
/**
* 测试Action
* @author liuqing
* @version 1.0
*/
public class TestAction {
private String username;
private String password;
//写一个输出流
private InputStream json;
public String add() {
try {
PrintWriter out = new PrintWriter(this.output());
out.println("我是中国人");
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public OutputStream output() throws IOException {
//通过struts2 调用Response
HttpServletResponse reponse = ServletActionContext.getResponse();
reponse.setContentType("text/html;charset=UTF-8");
return reponse.getOutputStream();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public InputStream getJson() {
return json;
}
public void setJson(InputStream json) {
this.json = json;
}
}