Где мне найти код для проверки идентификатора сотрудника (значка), который будет введен в несколько HTML-форм через мое приложение?
В настоящее время он у меня есть в STKUserForm.java, который используется, когда люди входят в систему (authenticateUser) или запрашивают свой пароль (requestPassword).Это прекрасно работает до сих пор.Я должен отправить большое спасибо BalusC.Многое из того, над чем я работаю, основано на его блоге DAO / Servlets.Спасибо BalusC !!!!!!!!!!
Но теперь я создаю другой вариант использования помимо входа в систему, где руководитель назначает сотруднику задачу (CommitmentItemForm.java), вводя значок сотрудника.,Я бы предпочел не дублировать свою бизнес-логику (когда-нибудь действительный значок может иметь 7 цифр), поэтому я чувствую, что мне нужно удалить его из STKUserForm.
STKUserForm.java - вызывается со страницы входа в систему (сервлетом), и оба упомянутых выше метода вызывают processBadge, который затем вызывает метод validateBadge.
public final class STKUserForm extends Form {
public STKUser authenticateUser(STKUser LoginUser) {
<snip>
processBadge(LoginUser.getBadge());
<snip>
return authenticatedUser;
}
public void requestPassword(STKUser loginUser) {
<snip>
processBadge(LoginUser.getBadge());
<snip>
}
public void processBadge(String badge) throws DAOException {
try {
validateBadge(badge);
} catch (ValidatorException e) {
setError(FIELD_USERBADGE, e.getMessage());
}
}
public void validateBadge(String badge) throws ValidatorException, DAOException {
if (badge != null) {
if (!FormUtil.isBadge(badge)) {
throw new ValidatorException("Please enter valid badge (6 digits, numbers only, and no 'E').");
} else if (!STKUserDAO.isValidEmployee(badge)) {
throw new ValidatorException("This is not a valid badge of any EB Employee.");
}
}
}
}
Так куда мне переместить метод validateBadge ??STKUser bean ??FormUtil ???Какой-то другой служебный класс ???Я не уверен, потому что он звонит в STKUserDAO.Я хочу проверить значок сотрудника для многих случаев использования через это и другие приложения.