我需要更換或從用戶輸入刪除某些字符通過Java註解春季
是是集之後的變化值可以申報註釋替換字符串?
例如,我有用戶名字段的UserDTO類。我想更改Unicode字符。
請注意,我用Spring數據+ Web服務
@PostMapping("/register")
public RestResult register(@Valid @RequestBody UserDTO userDTO){
...
}
我需要更換或從用戶輸入刪除某些字符通過Java註解春季
是是集之後的變化值可以申報註釋替換字符串?
例如,我有用戶名字段的UserDTO類。我想更改Unicode字符。
請注意,我用Spring數據+ Web服務
@PostMapping("/register")
public RestResult register(@Valid @RequestBody UserDTO userDTO){
...
}
這有兩種方法。
您可以編寫用於處理此邏輯的用戶名對象的setter。這個警告是任何通過你的setter傳遞的用戶名值將通過你的String按摩。
public class UserDTO implements Serializable {
@JsonProperty("username")
private String username;
public void setUsername(String username) {
this.username = username.replace("A", "B");
}
public String getUsername() {
return this.username;
}
}
這樣做的另一種可能的方式是通過使用Jackson
提供的@JsonCreator
註解。
您需要記住,這將成爲使用UserDTO
對象的跨所有對象的反序列化策略。但考慮到你正在尋找unicode(最可能是內部可讀格式),我會想象這將適合你的用例。
所以當通過你的方法,「ABC」將解析爲「BBC」。這可能是您的首選方法,因爲它可以讓您靈活地在需要時調整對象,而無需通過您的用戶名String清理。由序列化和構造函數創建的對象將通過清理,但setter將按原樣獲取值。在getter和setter中通過邏輯來獲取位置很容易。
你會想爲UserDTO使用一個自定義的解串器。 – shinjw
選中此:https://www.mkyong.com/spring-mvc/how-to-register-a-servlet-filter-in-spring-mvc/ – Shadov
@Shadov thx,它可能,但較少處理類。我想爲某些課程使用註釋來爲字段或課程級別做這個 – Hamid