利用 InitializingBean Jackson的ObjectMapper 进行页面传值
来源:互联网 发布:量化投资算法类书籍 编辑:程序博客网 时间:2024/06/15 21:11
一、 准备工作
1、 下载依赖库jar包
Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
然后在工程中导入这个jar包即可开始工作
官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes
ObjectMapper是一个高效转化json格式数据的类,如果创建的是spring boot项目,会自动导入com.fasterxml.jackson 依赖包,我使用的是这个类ObjectMapper。
public class BaseAction extends ActionSupport implements BaseActionInf, ServletRequestAware, ServletResponseAware, CookiesAware, ServletContextAware, InitializingBean {
/**
* 项目初始化,启动方法
*/
@Override
public void afterPropertiesSet() throws Exception {
objectMapper = new ObjectMapper();
// param与前端传值不一致时候,不会报错
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* 从键值对获取对象,h5用,加入token
*
* @param clazz
* @return
* @throws Exception
*/
@Override
protected <T> T readParamByParamMap(Class<T> clazz) throws Exception {
return this.readParamByParamMapFinal(clazz, true);
}
/**
* 从键值对获取对象,h5用,加入token
*
* @param clazz
* @return
* @throws Exception
*/
@Override
protected <T> T readParamByParamMapFinal(Class<T> clazz, boolean ifCreate) throws Exception {
HttpServletRequest request = getHttpServletRequest();
Map<String, String[]> paramsMap = request.getParameterMap();
Map<String, Object> values = new HashMap<String, Object>();
// if (!StringUtils.isBlank(getCookie("token"))) {
// values.put("token", getCookie("token"));
// }
for (Entry<String, String[]> e : paramsMap.entrySet()) {
if (e.getValue() != null) {
if (e.getValue().length == 1) {
values.put(e.getKey(), StringUtils.trim(e.getValue()[0]));
} else if (e.getValue().length > 1) {
List<String> list = Arrays.asList(e.getValue());
values.put(e.getKey(), list);
}
}
}
// map为空
if (values.size() <= 0) {
logger.info("read value is empty.");
if (ifCreate) {
T t = clazz.newInstance();
return t;
}
return null;
}
String s = null;
try {
s = objectMapper.writeValueAsString(values);
logger.info("read value is :" + s);
} catch (Exception e) {
logger.error("", e);
}
s = s.replace("\\\"", "\"");
T t = readValue(reomveStr(s), clazz);
if (t == null) {
t = clazz.newInstance();
}
return t;
}
}
- 利用 InitializingBean Jackson的ObjectMapper 进行页面传值
- Jackson - ObjectMapper
- [Jackson] 使用ObjectMapper对含有任意key的JSON进行反序列化
- Jackson第三篇【ObjectMapper的并发编程】
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson第三篇【ObjectMapper的并发编程】
- java中Jackson库的ObjectMapper类
- 使用jackson的ObjectMapper json转object
- Jackson 高性能的JSON处理 ObjectMapper
- Jackson的ObjectMapper类简单使用
- Jackson ObjectMapper解析
- Jackson ObjectMapper类
- SpringBoot 定制Jackson ObjectMapper
- Jackson框架提供的JsonGenerator ObjectMapper以及JSONObject 、JSONArray学习
- 【iOS开发】NSMutableArray使用中忽视的问题
- tensorflow中的pad函数解释
- EasyNVR H5无插件RTSP直播方案在Windows server 2012上修复无法定位GetNumaNodeProcessorMaskEx的问题
- hdoj Work
- GitHub查看日志和标签
- 利用 InitializingBean Jackson的ObjectMapper 进行页面传值
- 从源码中分析Handler, Looper, Message, MessageQueue之间的关系
- Android轻松实现RecyclerView悬浮条
- 【Emacs】之 windows 下 配置 purcell配置
- HDU 2045 不容易系列之(3)—— LELE的RPG难题
- 用java实现的经典递归算法
- 什么是:android-adt;sdk;api;adb
- Eclipse下如何打开Servers窗口
- java基础知识总结。