sao lại phải pass attemptDate từ actionPhase sang renderPhase?
actionResponse.setRenderParameter("attemptDate", "" + new Date());
sao lại phải ép sang kiểu string để lại mất công parse lại?
Dùng chung datetimeformatter đã có sẵn và đã khởi tạo trong init.jspf:
=> ko dùng thế này sau này sửa mất công SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssZ");
Sao lại đưa attemptDate về client để thành hidden field => ko cần đưa về client side, tính ngay trên server!!!!