public String perform(HttpServletRequest request) {
		List<String> errors = new ArrayList<String>();
		request.setAttribute("errors", errors);

		try {
			DepositCheckForm form = formBeanFactory.create(request);
			request.setAttribute("form", form);

			// If no params were passed, return with no errors so that the form
			// will be
			// presented (we assume for the first time).
			if (!form.isPresent()) {
				return "e_depositCheck.jsp";
			}

			// Any validation errors?
			errors.addAll(form.getValidationErrors());
			if (errors.size() != 0) {
				return "e_depositCheck.jsp";
			}

			int customerId = -1;
			Transaction.begin();
			customerId = customerDAO.getCustomerId(form.getCustomer());
			if (customerId == -1) {
				Transaction.commit();
				errors.add("cannot find customerId with customerName");
				return "e_depositCheck.jsp";
			}
			// Look up the user
			TransactionBean tb = new TransactionBean();
			tb.setTransaction_type("deposit");
			tb.setAmount(dataConversion.convertFromStringToThreeDigitLong(form
					.getAmount()));
			tb.setCustomer_id(customerId);
			// Transaction.begin();
			transactionDAO.createNewTransaction(tb);
			request.setAttribute("message", "the transaction is in process");
			Transaction.commit();
			return "e_success.jsp";
		} catch (RollbackException e) {
			errors.add(e.getMessage());
			return "e_depositCheck.jsp";
		} catch (FormBeanException e) {
			errors.add(e.getMessage());
			return "e_depositCheck.jsp";
		} catch (NumberFormatException e) {
			System.out.print("catched");
			errors.add("Input Amount is too large");
			return "e_depositCheck.jsp";
		} catch (Exception e) {
			errors.add(e.getMessage());
			return "e_depositCheck.jsp";
		} finally {
			if (Transaction.isActive())
				Transaction.rollback();
		}
	}