JFinal在線手冊
/ Validator
Validator
Validator 自身實現了 Interceptor 接口,所以它也是一個攔截器,配置方式與攔截器完全一 樣。以下是 Validator 示例:
public class LoginValidator extends Validator {
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "請輸入用戶名"); validateRequiredString("pass", "passMsg", "請輸入密碼");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "請輸入用戶名"); validateRequiredString("pass", "passMsg", "請輸入密碼");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}
protected void validator(Controller c)方法中可以調用 validateXxx(…)系列方法進行后端校 驗,protected void handleError(Controller c)方法中可以調用 c.keepPara(…)方法將提交的值再傳 回頁面以便保持原先輸入的值,還可以調用 c.render(…) 方法來返回相應的頁面。 注意 handleError(Controller c)只有在校驗失敗時才會調用。
以上代碼 handleError 方法中的 keepXxx 方法用于將頁面表單中的數據保持住并傳遞回頁, 以便于用戶無需再重復輸入已經通過驗證的表單域,如果傳遞過來的是 model 對象,可以使用 keepModel 方法來保持住用戶輸入過的數據。