1 16 package dlog4j.action; 17 18 import java.sql.Connection ; 19 import java.sql.ResultSet ; 20 import java.sql.SQLException ; 21 import java.sql.Statement ; 22 23 import javax.servlet.ServletContext ; 24 import javax.servlet.http.HttpServletRequest ; 25 import javax.servlet.http.HttpServletResponse ; 26 27 import org.apache.struts.action.ActionErrors; 28 import org.apache.struts.action.ActionForm; 29 import org.apache.struts.action.ActionForward; 30 import org.apache.struts.action.ActionMapping; 31 32 import dlog4j.Globals; 33 import dlog4j.formbean.UserForm; 34 35 import web.struts.ActionExtend; 36 import net.sf.hibernate.HibernateException; 37 import net.sf.hibernate.Session; 38 import net.sf.hibernate.SessionFactory; 39 40 44 public abstract class DlogActionBase extends ActionExtend { 45 46 52 public ActionForward execute(ActionMapping mapping, ActionForm form, 53 HttpServletRequest req, HttpServletResponse res) throws Exception 54 { 55 ActionForward forward = null; 56 if(form!=null){ 58 ActionErrors errors = form.validate(mapping, req); 59 if(errors!=null && !errors.isEmpty()){ 60 saveErrors(req, errors); 61 forward = mapping.getInputForward(); 62 } 63 } 64 if(forward==null) 65 forward = super.execute(mapping,form,req,res); 66 if(!forward.getRedirect()){ 68 req.setAttribute(Globals.ACTION_PATH_KEY, forward.getPath()); 70 } 71 return forward; 72 } 73 74 79 public static UserForm getLoginUser(HttpServletRequest req){ 80 return UserForm.getLoginUser(req); 81 } 82 86 protected Session getSession() throws SQLException { 87 ServletContext context = servlet.getServletContext(); 88 SessionFactory sessions = (SessionFactory)context.getAttribute(dlog4j.Globals.HIBERNATE_SESSIONS_KEY); 89 return sessions.openSession(getConnection()); 90 } 91 97 protected void commitSession(Session session, boolean close) throws SQLException , HibernateException{ 98 session.flush(); 99 session.connection().commit(); 100 if(close){ 101 session.connection().close(); 102 session.close(); 103 } 104 } 105 106 112 protected void closeSession(Session session) throws SQLException ,HibernateException{ 113 session.connection().close(); 114 session.close(); 115 } 116 117 122 public static void close(Object obj1,Object obj2){ 123 close(obj1); 124 close(obj2); 125 } 126 127 133 public static void close(Object obj1,Object obj2,Object obj3){ 134 close(obj1); 135 close(obj2); 136 close(obj3); 137 } 138 139 143 public static void close(Object obj){ 144 if(obj==null) 145 return; 146 try{ 147 if(obj instanceof Connection ) 148 ((Connection )obj).close(); 149 else 150 if(obj instanceof Statement ) 151 ((Statement )obj).close(); 152 else 153 if(obj instanceof ResultSet ) 154 ((ResultSet )obj).close(); 155 else 156 if(obj instanceof Session){ 157 Session snn = (Session)obj; 158 snn.connection().close(); 159 snn.close(); 160 } 161 }catch(Exception e){} 162 obj = null; 163 } 164 165 } 166 | Popular Tags |