(1)创建HibernateSessionFactory.java
代码如下:
package zy.pro.td.util;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.cfg.Configuration;
/**
* Configures and provides access to Hibernate sessions, tied to the
* current thread of execution. Follows the Thread Local Session
* pattern, see {@link http://hibernate.org/42.html}.
*/
public class HibernateSessionFactory {
/**
* Location of Hibernate.cfg.xml file.
* NOTICE: Location should be on the classpath as Hibernate uses
* #resourceAsStream style lookup for its configuration file. That
* is place the config file in a Java package - the default location
* is the default Java package.
* Examples:
* CONFIG_FILE_LOCATION =
"/hibernate.conf.xml".
* CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".
*/
private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
/** Holds a single instance of Session */
private final ThreadLocal threadLocal = new ThreadLocal();
/** The single instance of Hibernate configuration */
private final Configuration cfg = new Configuration();
/** The single instance of Hibernate SessionFactory */
private net.sf.hibernate.SessionFactory sessionFactory;
/**
* Returns the ThreadLocal Session instance. Lazy initialize
* the SessionFactory if needed.** @return Session
* @throws HibernateException
*/
public Session currentSession() throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null) {
if (sessionFactory == null) {
try {cfg.configure(CONFIG_FILE_LOCATION);
sessionFactory = cfg.buildSessionFactory();
}catch (Exception e) {
system.err.println("%%%% Error Creating SessionFactory %%%%");
e.printStackTrace();
}
}
session = sessionFactory.openSession();
threadLocal.set(session);
}
return session;
}
/**
* Close the single Hibernate session instance.*
* @throws HibernateException
*/
public void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {session.close();}
}
/**
* Default constructor.
*/
public HibernateSessionFactory() {}
}
(2)创建HibernatePlugIn.java,代码如下:
package zy.pro.td.plugin;
/** Created on Oct 4, 2004*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
import javax.servlet.ServletException;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import javax.naming.Context;
import javax.naming.InitialContext;
import zy.pro.td.util.HibernateSessionFactory;
/**
* @author sunil*
*This class will initialize Hibernate and bind SessionFactory in JNDI *at the*time of application and startup and unbind it from JNDI at *the time of application
* shutdown
*/
public class HibernatePluginimplements PlugIn {
private static final String jndi_hibernate = "jndi_hibernate_factory";
private HibernateSessionFactory hsf;
private String name;
public HibernatePlugin() {
hsf=new HibernateSessionFactory();
}// This method will be called at the time of application shutdownpublic void destroy() {
system.out.println("Entering HibernatePlugIn.destroy()");
//Put Hibernate cleanup code here
system.out.println("Exiting HibernatePlugIn.destroy()");}
//This method will be called at the time of application startuppublic void init(ActionServlet actionServlet, ModuleConfig config) throwsServletException {
system.out.println("Entering HibernatePlugIn.init()");
system.out.println("Value of init parameter " + getName());
//Uncomment next two lines if you want to throw UnavailableException from your servlet
//if(true)
//throw new ServletException("Error configuring HibernatePlugIn");
system.out.println("Exiting HibernatePlugIn.init()");
bindFactoryToJNDI();
}
private void bindFactoryToJNDI() {
try {Context ctx = new InitialContext();
ctx.bind(this.jndi_hibernate,hsf);
system.out.println("bindind the Hibernate factory to JNDI successfully");
}catch (Exception e) {e.printStackTrace();}}public String getName() {
return name;
}
public void setName(String string) {
name = string;
}
}
(3)配置Struts-config.xml,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="userActionForm" type="zy.pro.td.controller.UserActionForm" />
</form-beans>
<action-mappings>
<action name="userActionForm"
path="/act/log/login" scope="request" type="zy.pro.td.controller.LoginAction" />
</action-mappings>
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
<plug-in className="zy.pro.td.plugin.HibernatePlugin" />
<plug-in className="zy.pro.td.plugin.HibernateSessionFactoryPlugIn" />
</struts-config>这一部分就是你的嵌入代码
(4)创建ActionForm,代码如下:
package zy.pro.td.controller;
import org.apache.struts.action.*;
import javax.servlet.http.*;
public class UserActionForm extends ActionForm {
private String password;private String username;
public String getPassword() {
return password;
}
public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}
public void setUsername(String username) {this.username = username;}public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {}
}
(5)创建Action
package zy.pro.td.controller;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate
分享到:
- 2008-04-22 16:50
- 浏览 1355
- 评论(0)
- 论坛回复 / 浏览 (0 / 1659)
- 查看更多
相关推荐
2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...
48. struts2-spring-plugin-2.0.11.2.jar 49. //struts2必须 50. xwork-2.0.5.jar 数据库设计(使用MySql数据库): Java代码 1. create table user 2. ( 3. id varchar(32) not null, 4. userName ...
spring版本有2.0,2.5的,hibernate版本较多些至3.2,首先选版本就选择最优的,struts2没的选只有2.1.6版的,所以先导入struts2支持,然后是spring选的是2.0,问题就出在struts2中spring的插件上了,没有从MyEclipse...
最新struts2-struts1-plugin-2.1.8.1.jar
原文:http://cwiki.apache.org/WW/convention-plugin.html ...无需配置Convention即可使用Convention,Convention的某些约束习惯可以通过配置属性来控制,您也可以在类中覆写其中的方法 来达到扩展目地
struts2-json-plugin,Struts JSON插件
struts2 json plugin jar包
netbeans7.2_struts2_plugin插件
Spring3.0.2_API + Struts2.3.1_API + Hibernate3.2_API帮助文档,祝您拿下Java三大框架。
struts2 spring plugin 2.3.32,用于漏洞修复
struts2-struts1-plugin-2.1.6.jar
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-plugin-...
struts2-ssl-plugin-1.2.1.jar
struts2-dojo-plugin-2.2.1.jar, 直接导入到Struts2项目里即可,注意版本。
struts2-dojo-plugin-2.1.0的jar包,可以再struts中使用dojo......
struts2-convention-plugin-2.3.32
struts2-jquery-plugin-3.1.0.jar
struts2-spring-plugin-2.2.3.jar ,不太好下载,在这里上传方便大家下载