W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
場(chǎng)景化表單驗(yàn)證,是指在執(zhí)行表單驗(yàn)證時(shí)。開發(fā)者可以通過傳給表單驗(yàn)證器的場(chǎng)景名稱,進(jìn)行必要的邏輯判斷。我們以用戶帳號(hào)信息驗(yàn)證為例,下面表單驗(yàn)證器中定義了兩個(gè)場(chǎng)景的驗(yàn)證方法:
public class LoginFormValidation4Scene implements Validation<LoginForm4Scene> {
//
// - 登錄驗(yàn)證
private void doValidLogin(LoginForm4Scene dataForm, ValidInvoker errors) {
...
}
// - 注冊(cè)登錄
private void doValidSignUp(LoginForm4Scene dataForm, ValidInvoker errors) {
...
}
//
public void doValidation(String validType, LoginForm4Scene dataForm, ValidInvoker errors) {
// -通用驗(yàn)證邏輯
if (StringUtils.isBlank(dataForm.getAccount())) {
errors.addError("account", "帳號(hào)為空。");
}
if (StringUtils.isBlank(dataForm.getPassword())) {
errors.addError("password", "密碼為空。");
}
if (!errors.isValid()) {
return;
}
// -場(chǎng)景化差異
if (StringUtils.equalsIgnoreCase("signup", validType)) {
this.doValidSignUp(dataForm, errors); // 注冊(cè)
return;
}
if (StringUtils.equalsIgnoreCase("login", validType)) {
this.doValidLogin(dataForm, errors); // 登錄
return;
}
}
}
最后,在使用表單驗(yàn)證時(shí),我們?cè)?@Valid 注解上設(shè)定好要使用的場(chǎng)景名稱,就可以了。
@MappingTo("/scene/login.do")
public class Login4Scene {
public void execute(@Valid("login") @Params LoginForm4Scene loginForm,
RenderInvoker invoker,
ValidInvoker valid) {
...
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: