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; } |