2010-11-18 11 views
0

Java Webアプリケーションのフォームフィールドに追加の検証ルールを追加する必要があります。 入力したフォームフィールド値が有効な従業員IDのものであることを検証するルールがあります。Java Webアプリケーションフォームの検証の実施

この値は、フォームの/ Webユーザーの従業員IDまたはフォーム/ Webユーザーの従業員の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が含まれます。だから私は、ログインしたユーザーが2つのオブジェクトを比較してイベントを監督することを確認することができました。

答えて

0

最後に述べたことがうまく聞こえます。

また、processEventBadgeにvalidateEventBadgeメソッドをコールします。

ユーザオブジェクトの受け渡しは簡単です。

関連する問題