8.2 Validator

2022-07-11 10:34 更新

Validator 自身實(shí)現(xiàn)了 Interceptor 接口,所以它也是一個(gè)攔截器,配置方式與攔截器完全一 樣。以下是 Validator 示例:

public class LoginValidator extends Validator {
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "請(qǐng)輸入用戶名"); validateRequiredString("pass", "passMsg", "請(qǐng)輸入密碼");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}

protected void validator(Controller c)方法中可以調(diào)用 validateXxx(…)系列方法進(jìn)行后端校 驗(yàn),protected void handleError(Controller c)方法中可以調(diào)用 c.keepPara(…)方法將提交的值再傳 回頁(yè)面以便保持原先輸入的值,還可以調(diào)用 c.render(…) 方法來返回相應(yīng)的頁(yè)面。 注意 handleError(Controller c)只有在校驗(yàn)失敗時(shí)才會(huì)調(diào)用。


以上代碼 handleError 方法中的 keepXxx 方法用于將頁(yè)面表單中的數(shù)據(jù)保持住并傳遞回頁(yè), 以便于用戶無需再重復(fù)輸入已經(jīng)通過驗(yàn)證的表單域,如果傳遞過來的是 model 對(duì)象,可以使用 keepModel 方法來保持住用戶輸入過的數(shù)據(jù)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)