在Action中写
PrintWriter out = response.getWriter();
out.print("CODE");
out.flush();
抛出java.lang.IllegalStateException
网上搜了搜,好多解决办法都不可行。但是原因是找到了。Struts在其它地方调用了response.getOutputStream();
但是getOutputStream()和getWrite()这两个输出流只能同时使用其中的一个,是排斥的,那不用getWriter()就好了,程序改为:
ServletOutputStream out = response.getOutputStream();
out.print("CODE");
out.flush();
就好。但是ServletOutputStream只能输出ISO-8859-1字符,再改
ServletOutputStream servletOutputStream = response.getOutputStream();
OutputStreamWriter out = new OutputStreamWriter(servletOutputStream, "utf-8");
out.write("CODE");
out.flush();
现在可以输出中文了。