SpringMVC使用ResponseBody报406错误, 网上找了一堆, 都没解决, 啥缺少jar包, 修改配置文件都不对.
最终是由于我返回的对象里面字段没任何get/set. (这应该算个缺陷把!)
HTTP Status 406 -
type Status report
message
description The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ().
Apache Tomcat/7.0.23
package com.live.common;
import java.text.MessageFormat;
import java.util.ArrayList;
public class FieldValidation {
private ArrayList<FieldError> fieldErrorBeans = new ArrayList<FieldError>();
public void addFieldError(String fieldSelector, String errorMsg) {
FieldError error = new FieldError();
error.setFieldSelector(fieldSelector);
error.setErrorMsg(errorMsg);
fieldErrorBeans.add(error);
}
public boolean hasError() {
return !fieldErrorBeans.isEmpty();
}
/**
*
* @param fieldSelector
* filed name or jquery selector
* @param value
*/
public void required(String fieldSelector, Object value) {
if (null == value || value.toString().trim().length() == 0) {
addFieldError(fieldSelector, "不能为空!");
}
}
public void requiredLength(String fieldSelector, String value, int min,
int max) {
if (null == value) {
return;
}
int len = value.length();
if (min != -1 && max != -1) {
if (len < min || len > max) {
String msg = MessageFormat.format("长度必须在{0}~{1}之间!", min, max);
addFieldError(fieldSelector, msg);
}
} else if (min != -1) {
if (len < min) {
String msg = MessageFormat.format("长度必须大于${0}!", min);
addFieldError(fieldSelector, msg);
}
} else if (max != -1) {
if (len > max) {
String msg = MessageFormat.format("长度必须小于${0}!", max);
addFieldError(fieldSelector, msg);
}
}
}
}
更多参考: 职业网址导航