basecontroller 中的方法:
/** * 初始化數據綁定 * 1. 將所有傳遞進來的String進行HTML編碼,防止XSS攻擊 * 2. 將字段中Date類型轉換為String類型 */ @InitBinder protected void initBinder(WebDataBinder binder) { // String類型轉換,將所有傳遞進來的String進行HTML編碼,防止XSS攻擊 binder.registerCustomEditor(String.class, new PropertyEditorSupport() { @Override public void setAsText(String text) { setValue(text == null ? null : StringEscapeUtils.escapeHtml4(text.trim())); } @Override public String getAsText() { Object value = getValue(); return value != null ? value.toString() : ""; } }); // Date 類型轉換 binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { @SneakyThrows @Override public void setAsText(String text) { setValue(DateUtils.parseDate(text)); } @Override public String getAsText() { Object value = getValue(); return value != null ? DateUtils.formatDateTime((Date)value) : ""; } }); }