2015-10-03 22 views
9

我使用註解@JsonView,但它不起作用,這裏是我的代碼和返回數據,請你幫我看看我錯了什麼。JsonView不起作用

我的spring jar顯示了「spring-web-3.2.8.RELEASE.jar」的版本,我只是添加了這個bean,我不知道它是否有用,我直接使用@JsonView在我的代碼

<bean id = "jacksonMessageConverter" class = "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
     </bean> 

這裏是View類

public class View { 
    public interface Summary{}; 
} 

,這是用戶的實體類(「設置」「get」方法省略),它具有對應於數據庫中的幾個屬性, json數據中不需要返回「status」屬性。

public Class User{ 
    @JsonView(View.Summary.class) 
    private Integer uid; 

    @JsonView(View.Summary.class) 
    private String first; 

    @JsonView(View.Summary.class) 
    private String last; 

    @JsonView(View.Summary.class) 
    private String email; 

    @JsonView(View.Summary.class) 
    private String password; 

    private Integer status; 

} 

我控制器

@RequestMapping(value="/login", method=RequestMethod.POST) 
@JsonView(View.Summary.class) 
@ResponseBody 
public Message login(String email, String password){   
    User user = userMapper.findUser(email,password);   

    Message message = new Message();     
    message.setUser(user); 
    return message;  
} 
} 

,這裏是我的「設置」「消息類get」方法

當我使用郵遞員來測試網址
public class Message { 
    private int box_hits; 

    private List<Box> boxes; 

    @JsonView(View.Summary.class) 
    private User user; 
} 

,它顯示json數據,顯然,它不應該返回沒有@JsonView的屬性,我的代碼有什麼問題?

{ 
    "box_hits": 0, 
    "boxes": null, 
    "user": { 
    "uid": 1, 
    "first": "yuan", 
    "last": "kang", 
    "email": "[email protected]", 
    "password": "123", 
    "status": 0 
    } 
} 
+0

對於使用'@ JsonView'的Spring 4.2工作,請參見http://stackoverflow.com/questions/32299334/jacksons-jsonview-annotation-does-not-work#38777244 – GKislin

回答