在Spring 3 MVC中怎么动态的让jackson忽略字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Spring 3 MVC中怎么动态的让jackson忽略字段相关的知识,希望对你有一定的参考价值。

您好,很高兴为您解答。

通过url的参数控制Vo的输出

    @RequestMapping(value = "/PARAM/getJson", method = RequestMethod.GET)
    public @ResponseBody List<ViewObject> getJson(@PathVariable("PARAM") String param) 
        List<ViewObject> vo = showPageService.findListByID(param);
        //通过不同的param,vo绑定不同的数据
        return vo;
    


如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

                                                                                                                            ~ O(∩_∩)O~

参考技术A 可以用注解来注明jackson不需要加载的属性,但必须是编码的形式..动态去忽略字段貌似做不到.不过有一种方法就是将要忽略的字段赋值为null 然后让jackson转换json的时候忽略值为null的属性...这样应该就达到了你说的效果.

java spring mvc 怎么在程序内更改url的参数名

方法一:String username=request.getParameter("user_name");//得到参数值
GetInModel gm=new GetInModel();
gm.setUsername(username);//已经放入
方法二:private String username;
private String user_name;
public String getUserName()
return user_name;

其他的 全部不需要动,仅需要加一个方法即可。。
在后续的处理中,可以直接使用 getUserName方法。

方法三:
public class ParameterChangeArgumentResolver implements WebArgumentResolver

@Override
public Object resolveArgument(MethodParameter methodParameter, NativeWebRequest webRequest) throws Exception
Class<?> parameterType = methodParameter.getParameterType();
if (parameterType != null)
//获取request
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
//取得request 中的参数
Map<String, Object> map = new HashMap<String, Object>();
//解析参数到新的Map中
for (Map.Entry<String, String[]> temp : request.getParameterMap().entrySet())
map.put(StringUtil.remove(temp.getKey().toLowerCase(), '_'), temp.getValue()[0]);

//把Map转成obj
return MapUtil.mapToObj(map, parameterType);


return UNRESOLVED;


public static Object mapToObj(Map<String, Object> map, Class<?> beanClass) throws Exception
if (map == null)
return null;

Object obj = beanClass.newInstance();
BeanUtils.populate(obj, map);
return obj;



最后配置<mvc:annotation-driven>
<mvc:annotation-driven>
<mvc:argument-resolvers>
<bean class="..ParameterChangeArgumentResolver">
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
参考技术A 最简单的方法是你把这个input文本框的name属性设置成后台bean对应的字段的名称然后直接就可以在Controller的参数列表中直接写这个bean对象,spring会自动帮你封装的,不用你一个一个去request.getparameter这么取本回答被提问者采纳

以上是关于在Spring 3 MVC中怎么动态的让jackson忽略字段的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC登录注册以及转换json数据

在Spring MVC的3,怎么写一个cookie,同时返回一个ModelAndView

Java EE - Servlet 3.0 和 Spring MVC

spring mvc 版本,怎么查

如何在Spring MVC中基于http请求头启用json的动态漂亮打印?

Spring MVC Controller中JsonView的动态选择