在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ Spring MVC 中接收集合Integer 問題

Spring MVC 中接收集合Integer 問題

題目描述

Spring MVC 中接收集合Integer 問題

題目來源

對應(yīng)批量查詢的需求時,調(diào)用接口時使用逗號分隔,在 spring mvc 中使用實體對象屬性 List<Integer> 接收,框架會自動將數(shù)據(jù)進(jìn)行分隔保存。
如果數(shù)據(jù)是非數(shù)值會報錯,但是如果數(shù)據(jù)是一個空白符和在分隔符中無數(shù)據(jù)時卻會把空白符當(dāng)做 null 保存進(jìn)去,這不符合與預(yù)期效果,如何可以針對這種情況做處理?

相關(guān)代碼

@PostMapping("test")
@ResponseBody
public User test(User user) {
    return user;
}


public class User {
    private List<Integer> idList;

    public List<Integer> getIdList() {
        return idList;
    }

    public void setIdList(List<Integer> idList) {
        this.idList = idList;
    }
}

你期待的結(jié)果是什么?實際看到的錯誤信息又是什么?

實際期待結(jié)果是對空白符和空數(shù)據(jù)進(jìn)行忽略處理,如果無法忽略,提示數(shù)據(jù)不對也行。

正常結(jié)果1

輸入正確的數(shù)據(jù)
clipboard.png

正常結(jié)果2

輸入非數(shù)值的數(shù)據(jù)

clipboard.png

錯誤結(jié)果1

數(shù)據(jù)中存在空格

clipboard.png

clipboard.png

錯誤結(jié)果2

數(shù)據(jù)中存在空格與分隔符中無內(nèi)容
clipboard.png

回答
編輯回答
故人嘆
@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(List.class,new PropertyEditorSupport() {
        @Override
        public void setAsText(String text) {
            this.setValue(text);
        }
    });
}

使用SpringMVC的數(shù)據(jù)綁定,請求參數(shù)到達(dá)時進(jìn)行初始化數(shù)據(jù)綁定
根據(jù)你自身的需求在setAsText方法中進(jìn)行定制化操作

2018年7月15日 15:02