设置response的"contentType"属性以便Prototype可以自动识别为Json对象

在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对象一定要这么设定吗?

有点费解。

你可能感兴趣的:(JavaScript,Ajax,json,prototype,OS)