public static LoanRegistrationTranslator getInstance(HttpServletRequest request) { // 聲明返回值變量。 LoanRegistrationTranslator lrtRV = null; // HttpSession 是必需的,因此在此處將它提取出來。 HttpSession session = request.getSession(); // 從 request 對象中檢索 action 參數。 String sAction = parseString(request, ACTION); // 確定我們要返回哪種 Translator。 if (ACTION_PROCESS.equals(sAction) == true) { // 因為 action 參數被設置為 process,這表示我們正在處理一個現有的 // Translator,所以從 HttpSession 中將這個 translator 提取出來。 lrtRV = (LoanRegistrationTranslator) session.getValue(HttpSessionValueKeys.LOAN_REGISTRATION_TRANSLATOR); } else if (sAction == null || "".equals(sAction) == true || ACTION_NEW.equals(sAction) == true) { // 由于未設置或根本未傳遞 action,所以缺省操作是創建一個新的 translator。 // 另一種可能是 action 為 "new" lrtRV = new LoanRegistrationTranslator(); session.putValue(HttpSessionValueKeys.LOAN_REGISTRATION_TRANSLATOR, lrtRV); } else { // 由于 action 不滿足前面的任何檢查,即 action 值是位于輔助存儲器中的 // 一個現有 Loan 的 ID,所以這次創建一個 LoanRegistrationTranslator, // 其值被預設為已保存的 loan 中的值。 lrtRV = new LoanRegistrationTranslator(sAction); session.putValue(HttpSessionValueKeys.LOAN_REGISTRATION_TRANSLATOR, lrtRV); } // 返回 Translator 對象的一個實例。 return lrtRV; } |