【发布时间】:2010-11-18 20:40:07
【问题描述】:
我必须在 Java Web 应用程序的表单字段中添加额外的验证规则。 我有一个规则来验证输入的表单字段值是有效员工 ID 的值。
但现在我想验证该值是表单/网络用户的员工 ID,还是表单/网络用户的员工 ID。换句话说,员工可以根据自己的员工 ID 输入事件,主管可以根据自己的员工 ID 以及他们监督的员工徽章的 ID 输入事件。这是我所拥有的。
public Object insert(HttpServletRequest request) {
OopEvent event = new OopEvent();
STKUser authenticatedUser = (STKUser) request.getSession().getAttribute("STKUserSession");
try {
// populate bean with setters
processEventBadge (request, event);
processEventEventTypeID(request, event);
processEventStartDate (request, event);
processEventEndDate (request, event);
processEventHours (request, event);
if (isSucces()) {
EventDAO.insert(event, authenticatedUser);
}
else {
setError(FORM_RESULTS, "Error - There are error(s) in your input. See below.");
LOGGERI.log(Level.INFO, "Form input errors inserting OopEvent", authenticatedUser);
}
} catch (DAOException e) {
setError(FORM_RESULTS, e.getMessage());
}
return event;
}
// Field processors
// ---------------------------------------------------------------------------
public void processEventBadge(HttpServletRequest request, OopEvent event) throws DAOException {
String _badge = FormUtil.getFieldValue(request, FIELD_BADGE);
if (!"".equals(_badge) && _badge != null) {
try {
event.setBadge(_badge);
event.setEventUser(STKUserDAO.getValidEmployeeByBadge(_badge)); //Returns user bean
//should make a call to validate event employee ID HERE?????????? If so I need the send eventUser and authenticatedUser but authenticatedUser is not available here only the eventUser (only if the badge number is of a valid employee)
}
catch (ValidatorException e) {
setError(FIELD_BADGE, e.getMessage());
}
catch (DAOException e) {
setError(FIELD_BADGE, e.getMessage());
throw new DAOException(e.getMessage());
}
}
else {
setError(FIELD_BADGE, "OopEvent Owner badge is required");
}
}
我应该在insert 方法、processEventBadge 还是validateEventBadge 方法中实现这个逻辑?或者别的地方??我想我应该在processEventBadge 中调用validateEventBadge 方法,但这需要我将authenticatedUser 对象传递给这两种方法。用户对象包含员工 ID 和主管员工 ID。所以我可以通过比较两个对象来确保登录的用户监督事件。
【问题讨论】:
标签: java model-view-controller web-applications