MyEclipse2013自带的Struts2.1 + Spring 3.0.5 +Hibernate 3.3.2
结果拽里个jackson1.9.11-all的包,报错,于是把Spring下面的org.codehaus.jackson.mapper包干掉了。
然后把Struts的Action的配置里的result type改成了plainText,再也没有异常和错误了。
package com.lgh.common.tools.json;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonUtil {
public static void outToJson(HttpServletResponse response, Object data)
throws IOException {
ObjectMapper mapper = new ObjectMapper();
response.setContentType("text/json; charset=utf-8");
response.setHeader("Cache-Control", "no-cache"); //取消浏览器缓存
PrintWriter out = response.getWriter();
String s = "";
s = mapper.writeValueAsString(data);
out.print(s);
out.flush();
out.close();
}
}
package com.lgh.test;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.lgh.common.tools.json.JsonUtil;
import com.lgh.sys.entity.User;
import com.opensymphony.xwork2.Action;
@Scope("prototype")
@Controller
public class TestControl implements Action {
@Autowired
private TestService testService;
private User user;
private String name;
private List<User> List;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String test() throws Exception {
List = testService.findBySome("1", User.class);
user = testService.findBySome("1", User.class).get(0);
name = user.getName();
JsonUtil.outToJson(ServletActionContext.getResponse(), user);
return SUCCESS;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return null;
}
}