2015-10-03 7 views
9

Ich benutze die Annotation @JsonView, aber es funktioniert nicht, hier ist mein Code und die Rückkehr Daten, würden Sie mir bitte helfen, zu schauen, wo ich falsch liege.JsonView funktioniert nicht

Mein Frühlingsglas zeigt die Ausgabe von "spring-web-3.2.8.RELEASE.jar", und ich füge einfach diese Bean hinzu, ich weiß nicht, ob es nützlich ist oder nicht, und ich benutze einfach @JsonView direkt in meinem Code

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

Hier ist die View-Klasse

public class View { 
    public interface Summary{}; 
} 

Dies ist die Benutzerobjektklasse (mit "set" "get" Methode weggelassen), es mehrere Attribute hat, die in der Datenbank entspricht, Es gibt ein Attribut "Status", das in den JSON-Daten nicht zurückgegeben werden muss.

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; 

} 

hatte ich den Controller

@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;  
} 
} 

und hier ist meine Message-Klasse mit dem "Set" "" Methoden

public class Message { 
    private int box_hits; 

    private List<Box> boxes; 

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

, wenn ich den Briefträger verwenden, um die URL zu testen, Es zeigt JSON-Daten, offensichtlich sollte es nicht mit dem Attribut ohne @JsonView zurückkehren, was ist mit meinem Code falsch?

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

Für Frühling 4.2 Arbeit mit '@ JsonView' siehe http://stackoverflow.com/questions/32299334/jacksons-jsonview-annotation-does-not-work#38777244 – GKislin

Antwort

13

Wie in the announcement blog post beschrieben, ist diese Funktion nur zum Spring Framework 4.2 zur Verfügung. Es wird nicht mit Spring 3.2.8 funktionieren.

Verwandte Themen