在ajax操作成功之后,系统要求给回显一些信息给用户,譬如,用户在重置密码后,要将新密码回显给用户。
这是这样实现的,
/**
* 直接将字Json的字符串写入到Response中
*
* @param response
* @param jsonString Json的字符串
*/
public void responseJsonString(HttpServletResponse response,
String jsonString) {
response.setContentType(contentType);
byte[] bytes;
try {
bytes = jsonString.getBytes(charsetName);
} catch (UnsupportedEncodingException e) {
throw new UncheckedException(e);
}
response.setContentLength(bytes.length);
try {
OutputStream os = response.getOutputStream();
os.write(bytes);
os.flush();
if (logger.isDebugEnabled()) {
logger.debug("往客户端发送的Json串为:" + jsonString);
}
} catch (IOException e) {
logger.error("在往Response中写入Json字符串的时候发生异常。", e);
throw new UncheckedException(e);
}
}
对于response.setContentType(contentType);其中contentType已经注入了值,看下注入的是什么值,
<!-- 这种设置Prototype可以自动识别为Json对象 --> <property name="contentType"><value>application/x-javascript;charset=UTF-8</value></property> <property name="charsetName"><value>UTF-8</value></property>
prototype识别Json对象一定要这么设定吗?
有点费解。