﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java House-随笔分类-J2EE***学习历程</title><link>http://www.blogjava.net/qin/category/33415.html</link><description>Art is long</description><language>zh-cn</language><lastBuildDate>Tue, 21 Oct 2008 12:10:48 GMT</lastBuildDate><pubDate>Tue, 21 Oct 2008 12:10:48 GMT</pubDate><ttl>60</ttl><item><title>(ssh)一个简单的hibernate与spring集成</title><link>http://www.blogjava.net/qin/archive/2008/10/21/235674.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Tue, 21 Oct 2008 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/10/21/235674.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/235674.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/10/21/235674.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/235674.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/235674.html</trackback:ping><description><![CDATA[<p>下面介绍一下hibernate与spring的集成,这两个框架的集成关键在于applicationContext.xml文件的配置，其实很简单的，但需要注意的是，导入包时一定选择导入到webroot/web-inf/lib目录中，而且hibernate一般要在spring之前导入，因为集成时要用到sessionFactory类,<br />
一、初始化工作:新建一个项目,如(ssh),在此项目中导入对hibernate的支持,新建一个表sstest表，有字段id,username,password,id为主健和自动增1<br />
二、对新建的数据表进行hibernate进行映射,打开myhibernate视图，右击你sstest表-&gt;选hibernate revers engineering选项，然后把Sstest.hbm.xml文件映射到hibernateDao包中，同时选中工具 hibernate mapping file..., &nbsp;java data object.....,&nbsp; java data access object dao...选项，先中这几个文件就可以产生下列几个.java文件:BaseHibernateDAO. ,HibernateSessionFactory ,IBaseHibernateDAO, Sstest,SstestDAO,最后你对你的代码进行测试，测试成功，进行下一步<br />
三、在项目中导入对spring的支持，在导入项目后不但要自动产生applicationContext.xml,而且在这个文件里会出现下面的内容：<br />
&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="configLocation" value="classpath:hibernate.cfg.xml"&gt;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
这就是为什么要先要导入hibernate的原因<br />
四、若你对spring的ioc比较熟，你可以直接进入下一步，如果不是很了解，那么你可以写一个比较简单的例子测试一下看是否成功，必竟框架和在一起，所以小心点好，不然在以后出了有问题不好找<br />
五、进入myeclipse hibernate视图下，在新的包（如springDao）中重新对sstest表进行映射，这次映射要注意的就是：打开hibernate reverse engineering对话框中复选按钮java data access object(dao)(hibernate 3 only)下，dao type 不是选basic dao选项，而是选spring dao选项，当你映射成功后，就会出现Sstest.java, SstestDAO.java, Sstest.hbm.xml几个文件，你可以写一个类进行测试，如：<br />
springdaotest.java</p>
<p>package org.test;</p>
<p>import org.springframework.context.ApplicationContext;<br />
import org.springframework.context.support.ClassPathXmlApplicationContext;</p>
<p>import springDao.Sstest;<br />
import springDao.SstestDAO;</p>
<p>public class SpringDaoTest {<br />
&nbsp;public static void main(String a[]){<br />
&nbsp;&nbsp;ApplicationContext cont = new ClassPathXmlApplicationContext("applicationContext.xml");<br />
&nbsp;&nbsp;SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAO");<br />
&nbsp;&nbsp;&nbsp;SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAOProxy");<br />
&nbsp;&nbsp;Sstest st = new Sstest();<br />
&nbsp;&nbsp;st.setUsername("spring");<br />
&nbsp;&nbsp;st.setPassword("spring");<br />
&nbsp;&nbsp;s.save(st);&nbsp;&nbsp;&nbsp;<br />
&nbsp;}&nbsp;<br />
}<br />
六、由于映射了两次，所以你要在hibernate.cfg.xml文件中，把原来映射的文件注解掉：<br />
&lt;mapping resource="hibernateDao/Sstest.hbm.xml" /&gt;<br />
因为现在已有一行这样的代码：<br />
&lt;mapping resource="springDao/Sstest.hbm.xml" /&gt;<br />
七、实现hibernate spring 代理，加上下面的代码即可：<br />
&lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="sessionFactory"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;&lt;bean id="SstestDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="proxyTargetClass"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;value&gt;true&lt;/value&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="transactionManager"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="transactionManager"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="target"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="SstestDAO"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="transactionAttributes"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
在进行测试，测试时，还是用原来的类，只需把SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAO");变成<br />
SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAOProxy");这次的bean是用的代码类实现<br />
下面是完整的代码：<br />
在这个实例中hibernate包中的文件BaseHibernateDAO. ,HibernateSessionFactory ,IBaseHibernateDAO, Sstest,SstestDAO, Sstest.hbm.xml ，和在<a class="singleposttitle" id="viewpost1_TitleUrl" href="http://www.blogjava.net/qin/archive/2008/10/19/235318.html">一个简单的struts，hibernate例子以及struts,hibernate集成</a>中的文件是一样的，代码一样，下面是一些其它代码：<br />
<span style="color: #ff0000">applicationContext.xml</span></p>
<p>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;beans<br />
&nbsp;xmlns="http://www.springframework.org/schema/beans"<br />
&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
&nbsp;xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"&gt;<br />
<span style="color: #0000ff">&nbsp;&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="configLocation" value="classpath:hibernate.cfg.xml"&gt;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;</span><br />
&nbsp;&lt;!-- spring dao --&gt;<br />
&nbsp;<span style="color: #0000ff">&lt;bean id="SstestDAO" class="springDao.SstestDAO"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="sessionFactory"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
</span>&nbsp;&lt;!-- hibernate 3 事务代理 --&gt;<br />
<span style="color: #ff9900">&nbsp;&lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt;<br />
&nbsp;&nbsp;&lt;property name="sessionFactory"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="sessionFactory"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
&nbsp;&lt;bean id="SstestDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&gt;<br />
&nbsp;&nbsp;&lt;property name="proxyTargetClass"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;value&gt;true&lt;/value&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="transactionManager"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref bean="transactionManager"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="target"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="SstestDAO"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="transactionAttributes"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;props&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/props&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
</span>&lt;/beans&gt;&nbsp;<br />
测试类：SpringDaoTest.java</p>
<p>package org.test;</p>
<p>import org.springframework.context.ApplicationContext;<br />
import org.springframework.context.support.ClassPathXmlApplicationContext;</p>
<p>import springDao.Sstest;<br />
import springDao.SstestDAO;</p>
<p>public class SpringDaoTest {<br />
&nbsp;public static void main(String a[]){<br />
&nbsp;&nbsp;ApplicationContext cont = new ClassPathXmlApplicationContext("applicationContext.xml");<br />
&nbsp;&nbsp;//SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAO");<br />
&nbsp;&nbsp;//代理类<br />
&nbsp;&nbsp;SstestDAO&nbsp; s = (SstestDAO) cont.getBean("SstestDAOProxy");<br />
&nbsp;&nbsp;Sstest st = new Sstest();<br />
&nbsp;&nbsp;st.setUsername("spring");<br />
&nbsp;&nbsp;st.setPassword("spring");<br />
&nbsp;&nbsp;s.save(st);&nbsp;&nbsp;&nbsp;<br />
&nbsp;}&nbsp;<br />
}&nbsp;<br />
<span style="color: #ff0000">Sstest.hbm.xml</span><br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;<br />
&lt;!-- <br />
&nbsp;&nbsp;&nbsp; Mapping file autogenerated by MyEclipse Persistence Tools<br />
--&gt;<br />
&lt;hibernate-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;class name="springDao.Sstest" table="sstest" schema="dbo" catalog="manager"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" type="java.lang.Integer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="id" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="increment" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="username" type="java.lang.String"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="username" length="10" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password" type="java.lang.String"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="password" length="20" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br />
&lt;/hibernate-mapping&gt;<span style="color: #ff0000"><br />
SstestDAO.java</span></p>
<p>package springDao;</p>
<p>import java.util.List;<br />
import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;<br />
import org.hibernate.LockMode;<br />
import org.springframework.context.ApplicationContext;<br />
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;</p>
<p>public class SstestDAO extends HibernateDaoSupport {<br />
&nbsp;private static final Log log = LogFactory.getLog(SstestDAO.class);<br />
&nbsp;// property constants<br />
&nbsp;public static final String USERNAME = "username";<br />
&nbsp;public static final String PASSWORD = "password";</p>
<p>&nbsp;protected void initDao() {<br />
&nbsp;&nbsp;// do nothing<br />
&nbsp;}</p>
<p>&nbsp;public void save(Sstest transientInstance) {<br />
&nbsp;&nbsp;log.debug("saving Sstest instance");<br />
&nbsp;&nbsp;System.out.println("Ok");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getHibernateTemplate().save(transientInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("save successful");<br />
&nbsp;&nbsp;&nbsp;System.out.print("save Ok");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("save failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public void delete(Sstest persistentInstance) {<br />
&nbsp;&nbsp;log.debug("deleting Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getHibernateTemplate().delete(persistentInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("delete successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("delete failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public Sstest findById(java.lang.Integer id) {<br />
&nbsp;&nbsp;log.debug("getting Sstest instance with id: " + id);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Sstest instance = (Sstest) getHibernateTemplate().get(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"springDao.Sstest", id);<br />
&nbsp;&nbsp;&nbsp;return instance;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("get failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public List findByExample(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("finding Sstest instance by example");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;List results = getHibernateTemplate().findByExample(instance);<br />
&nbsp;&nbsp;&nbsp;log.debug("find by example successful, result size: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ results.size());<br />
&nbsp;&nbsp;&nbsp;return results;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find by example failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public List findByProperty(String propertyName, Object value) {<br />
&nbsp;&nbsp;log.debug("finding Sstest instance with property: " + propertyName<br />
&nbsp;&nbsp;&nbsp;&nbsp;+ ", value: " + value);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String queryString = "from Sstest as model where model."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ propertyName + "= ?";<br />
&nbsp;&nbsp;&nbsp;return getHibernateTemplate().find(queryString, value);<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find by property name failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public List findByUsername(Object username) {<br />
&nbsp;&nbsp;return findByProperty(USERNAME, username);<br />
&nbsp;}</p>
<p>&nbsp;public List findByPassword(Object password) {<br />
&nbsp;&nbsp;return findByProperty(PASSWORD, password);<br />
&nbsp;}</p>
<p>&nbsp;public List findAll() {<br />
&nbsp;&nbsp;log.debug("finding all Sstest instances");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String queryString = "from Sstest";<br />
&nbsp;&nbsp;&nbsp;return getHibernateTemplate().find(queryString);<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find all failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public Sstest merge(Sstest detachedInstance) {<br />
&nbsp;&nbsp;log.debug("merging Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Sstest result = (Sstest) getHibernateTemplate().merge(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;detachedInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("merge successful");<br />
&nbsp;&nbsp;&nbsp;return result;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("merge failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public void attachDirty(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("attaching dirty Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getHibernateTemplate().saveOrUpdate(instance);<br />
&nbsp;&nbsp;&nbsp;log.debug("attach successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("attach failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public void attachClean(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("attaching clean Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getHibernateTemplate().lock(instance, LockMode.NONE);<br />
&nbsp;&nbsp;&nbsp;log.debug("attach successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("attach failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</p>
<p>&nbsp;public static SstestDAO getFromApplicationContext(ApplicationContext ctx) {<br />
&nbsp;&nbsp;return (SstestDAO) ctx.getBean("SstestDAO");<br />
&nbsp;}<br />
}<br />
<br />
<span style="color: #ff0000">Sstest.java</span></p>
<p>package springDao;</p>
<p>public class Sstest implements java.io.Serializable {</p>
<p>&nbsp;// Fields</p>
<p>&nbsp;private Integer id;<br />
&nbsp;private String username;<br />
&nbsp;private String password;</p>
<p>&nbsp;// Constructors</p>
<p>&nbsp;/** default constructor */<br />
&nbsp;public Sstest() {<br />
&nbsp;}</p>
<p>&nbsp;/** full constructor */<br />
&nbsp;public Sstest(String username, String password) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}</p>
<p>&nbsp;// Property accessors</p>
<p>&nbsp;public Integer getId() {<br />
&nbsp;&nbsp;return this.id;<br />
&nbsp;}</p>
<p>&nbsp;public void setId(Integer id) {<br />
&nbsp;&nbsp;this.id = id;<br />
&nbsp;}</p>
<p>&nbsp;public String getUsername() {<br />
&nbsp;&nbsp;return this.username;<br />
&nbsp;}</p>
<p>&nbsp;public void setUsername(String username) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;}</p>
<p>&nbsp;public String getPassword() {<br />
&nbsp;&nbsp;return this.password;<br />
&nbsp;}</p>
<p>&nbsp;public void setPassword(String password) {<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}</p>
<p>}</p>
<p><span style="color: #ff0000">hibernate.cfg.xml</span></p>
<p>&lt;?xml version='1.0' encoding='UTF-8'?&gt;<br />
&lt;!DOCTYPE hibernate-configuration PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Hibernate/Hibernate Configuration DTD 3.0//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&gt;</p>
<p>&lt;!-- Generated by MyEclipse Hibernate Tools.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />
&lt;hibernate-configuration&gt;</p>
<p>&nbsp;&lt;session-factory&gt;<br />
&nbsp;&nbsp;&lt;property name="connection.username"&gt;sa&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="connection.url"&gt;<br />
&nbsp;&nbsp;&nbsp;jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=manager<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="dialect"&gt;<br />
&nbsp;&nbsp;&nbsp;org.hibernate.dialect.SQLServerDialect<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="myeclipse.connection.profile"&gt;<br />
&nbsp;&nbsp;&nbsp;com.microsoft.jdbc.sqlserver.SQLServerDriver<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="connection.password"&gt;wq&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;property name="connection.driver_class"&gt;<br />
&nbsp;&nbsp;&nbsp;com.microsoft.jdbc.sqlserver.SQLServerDriver<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&nbsp;&lt;!-- &lt;mapping resource="hibernateDao/Sstest.hbm.xml" /&gt; --&gt;<br />
&nbsp;&nbsp;&lt;!-- 使用springdao --&gt;<br />
&nbsp;<span style="color: #0000ff">&nbsp;&lt;mapping resource="springDao/Sstest.hbm.xml" /&gt;</span></p>
<p>&nbsp;&lt;/session-factory&gt;</p>
<p>&lt;/hibernate-configuration&gt;</p>
<p><br />
<br />
<br />
<br />
<br />
&nbsp;</p>
  <img src ="http://www.blogjava.net/qin/aggbug/235674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-10-21 14:41 <a href="http://www.blogjava.net/qin/archive/2008/10/21/235674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(spring+hibernate)java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V</title><link>http://www.blogjava.net/qin/archive/2008/10/20/235465.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Mon, 20 Oct 2008 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/10/20/235465.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/235465.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/10/20/235465.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/235465.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/235465.html</trackback:ping><description><![CDATA[今天为java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V错误真花了我大量的时间去找这个问题，在网上也找到了不少的解决的办法，但不知道为什么不能解决我的问题，也不知道是不是我用的工具的问题哟，不过综合找到的现在终于找到了，虽然花了不少的时间，但还是很高兴，本来不想把这个问题写上来的，因为网上有太多的解决方法，不过我觉得很有必要，解决方法如下：<br />
当你把spring包和hibernate相应包打进项目里，然后在打包的文件里把把<br />
asm.jar,asm-attrs.jar,cglib-2.1.3.jar三个文件从项目里导出，并删掉就OK了<br />
<br />
<font size="5"><font style="font-size: 12pt; color: #0000ff" color="#0000ff"><font face="Arial"><font face="Arial"><font face="Times New Roman" color="#000000">错误的祥细信息如下：</font><br />
2008-10-20 22:15:31,859 ERROR [org.hibernate.proxy.BasicLazyInitializer.getProxyFactory():130] - CGLIB Enhancement failed: springDao.Sstest<br />
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V<br />
&nbsp;at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)<br />
&nbsp;at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)<br />
&nbsp;at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)<br />
&nbsp;at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)<br />
&nbsp;at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)<br />
&nbsp;at net.sf.cglib.proxy.Enhancer.&lt;clinit&gt;(Enhancer.java:69)<br />
&nbsp;at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)<br />
&nbsp;at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)<br />
&nbsp;at org.hibernate.tuple.AbstractEntityTuplizer.&lt;init&gt;(AbstractEntityTuplizer.java:131)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.&lt;init&gt;(PojoEntityTuplizer.java:55)<br />
&nbsp;at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)<br />
&nbsp;at org.hibernate.tuple.EntityMetamodel.&lt;init&gt;(EntityMetamodel.java:257)<br />
&nbsp;at org.hibernate.persister.entity.AbstractEntityPersister.&lt;init&gt;(AbstractEntityPersister.java:412)<br />
&nbsp;at org.hibernate.persister.entity.SingleTableEntityPersister.&lt;init&gt;(SingleTableEntityPersister.java:108)<br />
&nbsp;at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)<br />
&nbsp;at org.hibernate.impl.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:216)<br />
&nbsp;at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)<br />
&nbsp;at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)<br />
&nbsp;at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)<br />
&nbsp;at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1198)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1167)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)<br />
&nbsp;at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)<br />
&nbsp;at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)<br />
&nbsp;at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)<br />
&nbsp;at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:122)<br />
&nbsp;at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:66)<br />
&nbsp;at com.yourcompany.struts.action.SpringProxyAction.execute(SpringProxyAction.java:22)<br />
&nbsp;at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)<br />
&nbsp;at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)<br />
&nbsp;at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)<br />
&nbsp;at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<br />
&nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br />
&nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
&nbsp;at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />
&nbsp;at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />
&nbsp;at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br />
&nbsp;at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />
&nbsp;at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />
&nbsp;at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br />
&nbsp;at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br />
&nbsp;at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br />
&nbsp;at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br />
&nbsp;at java.lang.Thread.run(Thread.java:595)<br />
2008-10-20 22:15:31,906 WARN&nbsp; [org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory():173] - could not create proxy factory for:springDao.Sstest<br />
org.hibernate.HibernateException: CGLIB Enhancement failed: springDao.Sstest<br />
&nbsp;at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:132)<br />
&nbsp;at org.hibernate.proxy.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:41)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:161)<br />
&nbsp;at org.hibernate.tuple.AbstractEntityTuplizer.&lt;init&gt;(AbstractEntityTuplizer.java:131)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.&lt;init&gt;(PojoEntityTuplizer.java:55)<br />
&nbsp;at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)<br />
&nbsp;at org.hibernate.tuple.EntityMetamodel.&lt;init&gt;(EntityMetamodel.java:257)<br />
&nbsp;at org.hibernate.persister.entity.AbstractEntityPersister.&lt;init&gt;(AbstractEntityPersister.java:412)<br />
&nbsp;at org.hibernate.persister.entity.SingleTableEntityPersister.&lt;init&gt;(SingleTableEntityPersister.java:108)<br />
&nbsp;at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)<br />
&nbsp;at org.hibernate.impl.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:216)<br />
&nbsp;at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)<br />
&nbsp;at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)<br />
&nbsp;at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)<br />
&nbsp;at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1198)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1167)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)<br />
&nbsp;at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)<br />
&nbsp;at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)<br />
&nbsp;at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)<br />
&nbsp;at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)<br />
&nbsp;at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:122)<br />
&nbsp;at org.springframework.context.support.ClassPathXmlApplicationContext.&lt;init&gt;(ClassPathXmlApplicationContext.java:66)<br />
&nbsp;at com.yourcompany.struts.action.SpringProxyAction.execute(SpringProxyAction.java:22)<br />
&nbsp;at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)<br />
&nbsp;at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)<br />
&nbsp;at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)<br />
&nbsp;at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<br />
&nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)<br />
&nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
&nbsp;at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />
&nbsp;at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />
&nbsp;at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br />
&nbsp;at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />
&nbsp;at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />
&nbsp;at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br />
&nbsp;at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br />
&nbsp;at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br />
&nbsp;at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br />
&nbsp;at java.lang.Thread.run(Thread.java:595)<br />
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V<br />
&nbsp;at net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77)<br />
&nbsp;at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:173)<br />
&nbsp;at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)<br />
&nbsp;at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)<br />
&nbsp;at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)<br />
&nbsp;at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)<br />
&nbsp;at net.sf.cglib.proxy.Enhancer.&lt;clinit&gt;(Enhancer.java:69)<br />
&nbsp;at org.hibernate.proxy.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:116)<br />
&nbsp;... 44 more</font></font></font></font>
 <img src ="http://www.blogjava.net/qin/aggbug/235465.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-10-20 14:49 <a href="http://www.blogjava.net/qin/archive/2008/10/20/235465.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(ssh)一个简单的struts，hibernate例子以及struts,hibernate集成</title><link>http://www.blogjava.net/qin/archive/2008/10/19/235318.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Sun, 19 Oct 2008 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/10/19/235318.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/235318.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/10/19/235318.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/235318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/235318.html</trackback:ping><description><![CDATA[<p>最近在学几个常用框架的集成，下面是一个关于struts+hibernate的集成的例子，大家都知道，任何一个复杂的东西，都是从简单开始的，所以我先说一个struts+hibernate集成，然后再进一步了解，希望对这方面爱好的能有所帮助<br />
一、新建一个项目（如ssh）<br />
二、加入该项目对struts的支持，就是相关struts包，（右击你新建的项目－&gt;MyEclipse，选add struts.........）<br />
三、添加了对struts支持后，然后在struts-config.xml文件里右击，新建－&gt;form action and jsp选项，那样就可以把这三个文件新建好 register1.jsp,Register1Action.java,Register1Form.java（你可以把这三个文件发布到tomcat进行测试），测试成功就可以执行下一步<br />
四、新建一个表sstest表，有字段id,username,password,id为主健和自动增1<br />
五，同样的方法添加对hibernate支持<br />
六、对新建的数据表进行hibernate进行映射,打开myhibernate视图，右击你sstest表-&gt;选hibernate revers engineering选项，然后把Sstest.hbm.xml文件映射到hibernateDao包中，同时选中工具 hibernate mapping file..., &nbsp;java data object.....,&nbsp; java data access object dao...选项，先中这几个文件就可以产生下列几个.java文件:BaseHibernateDAO. ,HibernateSessionFactory ,IBaseHibernateDAO, Sstest,SstestDAO,最后你对你的代码进行测试，测试成功，进行下一步<br />
七、好了，关于struts和hibernate代码基本上差不好了，下面来看一直代码，代码为蓝色的就是集成的地方,主要是看Register1Action代码,其它的代码都是自动生成的<br />
相关代码如下：<br />
<span style="color: #ff0000">register1.jsp</span></p>
<p>&lt;%@ page language="java" pageEncoding="ISO-8859-1"%&gt;<br />
&lt;%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&gt; <br />
&lt;%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%&gt;&nbsp;<br />
&lt;html&gt; <br />
&nbsp;&lt;head&gt;<br />
&nbsp;&nbsp;&lt;title&gt;JSP for Register1Form form&lt;/title&gt;<br />
&nbsp;&lt;/head&gt;<br />
&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&lt;html:form action="/register1"&gt;<br />
&nbsp;&nbsp;&nbsp;password : &lt;html:password property="password"/&gt;&lt;html:errors property="password"/&gt;&lt;br/&gt;<br />
&nbsp;&nbsp;&nbsp;username : &lt;html:text property="username"/&gt;&lt;html:errors property="username"/&gt;&lt;br/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;html:submit/&gt;&lt;html:cancel/&gt;<br />
&nbsp;&nbsp;&lt;/html:form&gt;<br />
&nbsp;&lt;/body&gt;<br />
<span>&lt;/html&gt;</span></p>
<p><span style="color: #ff0000"><span><span>Register1Action.java</span>&nbsp;</span><br />
</span></p>
<p>package com.yourcompany.struts.action;</p>
<p>import hibernateDao.Sstest;<br />
import hibernateDao.SstestDAO;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;<br />
import org.apache.struts.action.Action;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionForward;<br />
import org.apache.struts.action.ActionMapping;<br />
import org.hibernate.Transaction;</p>
<p>import com.yourcompany.struts.form.Register1Form;</p>
<p>public class Register1Action extends Action {<br />
<span style="color: #0000ff">&nbsp;//数据dao<br />
&nbsp;SstestDAO sd;<br />
&nbsp;public Register1Action() {<br />
&nbsp;&nbsp;// TODO Auto-generated constructor stub<br />
&nbsp;&nbsp;setSd(new SstestDAO());<br />
&nbsp;}</span><br />
&nbsp;public ActionForward execute(ActionMapping mapping, ActionForm form,<br />
&nbsp;&nbsp;&nbsp;HttpServletRequest request, HttpServletResponse response) {<br />
&nbsp;&nbsp;Register1Form register1Form = (Register1Form) form;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;//输出客户端的用户名<br />
&nbsp;&nbsp;response.setCharacterEncoding("GB2312");<br />
&nbsp;&nbsp;System.out.println("register1Form.name\t"+register1Form.getUsername());<br />
&nbsp;&nbsp;/*<br />
&nbsp;&nbsp; * 数据库操作<br />
&nbsp;&nbsp; * */<br />
<span style="color: #0000ff">&nbsp;&nbsp;Sstest st = new Sstest();&nbsp;<br />
&nbsp;&nbsp;st.setUsername(register1Form.getUsername());<br />
&nbsp;&nbsp;st.setPassword(register1Form.getPassword());</span><br />
&nbsp;&nbsp;//dao对象<br />
<span style="color: #0000ff">&nbsp;&nbsp;SstestDAO sd = getSd();<br />
&nbsp;&nbsp;Transaction tran = sd.getSession().beginTransaction(); //开始事务<br />
&nbsp;&nbsp;sd.save(st);<br />
&nbsp;&nbsp;tran.commit();</span><br />
&nbsp;&nbsp;//请求转发到success<br />
&nbsp;&nbsp;return mapping.findForward("success");<br />
&nbsp;}<br />
&nbsp;//数据dao，get，set方法<br />
&nbsp;public void setSd(SstestDAO sd) {<br />
&nbsp;&nbsp;this.sd = sd;<br />
&nbsp;}<br />
&nbsp;public SstestDAO getSd() {<br />
&nbsp;&nbsp;return sd;<br />
&nbsp;}<br />
}</p>
<p><span style="color: #ff0000">Register1Form.java</span><br />
package com.yourcompany.struts.form;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />
import org.apache.struts.action.ActionErrors;<br />
import org.apache.struts.action.ActionForm;<br />
import org.apache.struts.action.ActionMapping;</p>
<p>public ActionErrors validate(ActionMapping mapping,<br />
&nbsp;&nbsp;&nbsp;HttpServletRequest request) {<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;return null;<br />
&nbsp;}</p>
<p>&nbsp;public void reset(ActionMapping mapping, HttpServletRequest request) {<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;this.username = "qin";<br />
&nbsp;}</p>
<p>&nbsp;public String getPassword() {<br />
&nbsp;&nbsp;return password;<br />
&nbsp;}</p>
<p>&nbsp;public void setPassword(String password) {<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}</p>
<p>&nbsp;public String getUsername() {<br />
&nbsp;&nbsp;return username;<br />
&nbsp;}</p>
<p>&nbsp;public void setUsername(String username) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;}<br />
}<br />
如果你觉得你的代码自动生成有问题的话，你可以参考下列代码</p>
<p><span style="color: #ff0000"><span style="font-size: 12pt">BaseHibernateDAO.java</span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">package hibernateDao;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">import org.hibernate.Session;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">public class BaseHibernateDAO implements IBaseHibernateDAO {<br />
&nbsp;<br />
&nbsp;public Session getSession() {<br />
&nbsp;&nbsp;return HibernateSessionFactory.getSession();<br />
&nbsp;}&nbsp;<br />
}<br />
<span style="color: #ff0000">HibernateSessionFactory.java</span></span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">package hibernateDao;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">import org.hibernate.HibernateException;<br />
import org.hibernate.Session;<br />
import org.hibernate.cfg.Configuration;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">public class HibernateSessionFactory {</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";<br />
&nbsp;private static final ThreadLocal&lt;Session&gt; threadLocal = new ThreadLocal&lt;Session&gt;();<br />
&nbsp;&nbsp;&nbsp; private&nbsp; static Configuration configuration = new Configuration();<br />
&nbsp;&nbsp;&nbsp; private static org.hibernate.SessionFactory sessionFactory;<br />
&nbsp;&nbsp;&nbsp; private static String configFile = CONFIG_FILE_LOCATION;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;static {<br />
&nbsp;&nbsp;&nbsp; &nbsp;try {<br />
&nbsp;&nbsp;&nbsp;configuration.configure(configFile);<br />
&nbsp;&nbsp;&nbsp;sessionFactory = configuration.buildSessionFactory();<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;System.err<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.println("%%%% Error Creating SessionFactory %%%%");<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; private HibernateSessionFactory() {<br />
&nbsp;&nbsp;&nbsp; }&nbsp;<br />
&nbsp;&nbsp;&nbsp; public static Session getSession() throws HibernateException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = (Session) threadLocal.get();</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;&nbsp;if (session == null || !session.isOpen()) {<br />
&nbsp;&nbsp;&nbsp;if (sessionFactory == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;rebuildSessionFactory();<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;session = (sessionFactory != null) ? sessionFactory.openSession()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: null;<br />
&nbsp;&nbsp;&nbsp;threadLocal.set(session);<br />
&nbsp;&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return session;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;public static void rebuildSessionFactory() {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;configuration.configure(configFile);<br />
&nbsp;&nbsp;&nbsp;sessionFactory = configuration.buildSessionFactory();<br />
&nbsp;&nbsp;} catch (Exception e) {<br />
&nbsp;&nbsp;&nbsp;System.err<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.println("%%%% Error Creating SessionFactory %%%%");<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;&nbsp;&nbsp; public static void closeSession() throws HibernateException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session session = (Session) threadLocal.get();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; threadLocal.set(null);</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (session != null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }</span></span></span></p>
<p><br />
<span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public static org.hibernate.SessionFactory getSessionFactory() {<br />
&nbsp;&nbsp;return sessionFactory;<br />
&nbsp;}</span></span></span></p>
<p><br />
<span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public static void setConfigFile(String configFile) {<br />
&nbsp;&nbsp;HibernateSessionFactory.configFile = configFile;<br />
&nbsp;&nbsp;sessionFactory = null;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public static Configuration getConfiguration() {<br />
&nbsp;&nbsp;return configuration;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">}</span></span></span></p>
<p><span style="color: #ff0000"><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">IBaseHibernateDAO.java</span></span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">package hibernateDao;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">import org.hibernate.Session;</span></span></span></p>
<p><br />
<span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">/**<br />
&nbsp;* Data access interface for domain model<br />
&nbsp;* @author MyEclipse Persistence Tools<br />
&nbsp;*/<br />
public interface IBaseHibernateDAO {<br />
&nbsp;public Session getSession();<br />
}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sstest.java<br />
</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">package hibernateDao;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">ublic class Sstest implements java.io.Serializable {</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;// Fields</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;private Integer id;<br />
&nbsp;private String username;<br />
&nbsp;private String password;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;// Constructors</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;/** default constructor */<br />
&nbsp;public Sstest() {<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;/** full constructor */<br />
&nbsp;public Sstest(String username, String password) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;// Property accessors</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public Integer getId() {<br />
&nbsp;&nbsp;return this.id;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void setId(Integer id) {<br />
&nbsp;&nbsp;this.id = id;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public String getUsername() {<br />
&nbsp;&nbsp;return this.username;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void setUsername(String username) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public String getPassword() {<br />
&nbsp;&nbsp;return this.password;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void setPassword(String password) {<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">}</span></span></span></p>
<p><span style="color: #ff0000"><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">SstestDAO.java</span></span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">package hibernateDao;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">import java.util.List;<br />
import org.apache.commons.logging.Log;<br />
import org.apache.commons.logging.LogFactory;<br />
import org.hibernate.LockMode;<br />
import org.hibernate.Query;<br />
import org.hibernate.criterion.Example;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">public class SstestDAO extends BaseHibernateDAO {<br />
&nbsp;private static final Log log = LogFactory.getLog(SstestDAO.class);<br />
&nbsp;// property constants<br />
&nbsp;public static final String USERNAME = "username";<br />
&nbsp;public static final String PASSWORD = "password";</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void save(Sstest transientInstance) {<br />
&nbsp;&nbsp;log.debug("saving Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getSession().save(transientInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("save successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("save failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void delete(Sstest persistentInstance) {<br />
&nbsp;&nbsp;log.debug("deleting Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getSession().delete(persistentInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("delete successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("delete failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public Sstest findById(java.lang.Integer id) {<br />
&nbsp;&nbsp;log.debug("getting Sstest instance with id: " + id);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Sstest instance = (Sstest) getSession().get("hibernateDao.Sstest",<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id);<br />
&nbsp;&nbsp;&nbsp;return instance;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("get failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public List findByExample(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("finding Sstest instance by example");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;List results = getSession().createCriteria("hibernateDao.Sstest")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.add(Example.create(instance)).list();<br />
&nbsp;&nbsp;&nbsp;log.debug("find by example successful, result size: "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ results.size());<br />
&nbsp;&nbsp;&nbsp;return results;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find by example failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public List findByProperty(String propertyName, Object value) {<br />
&nbsp;&nbsp;log.debug("finding Sstest instance with property: " + propertyName<br />
&nbsp;&nbsp;&nbsp;&nbsp;+ ", value: " + value);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String queryString = "from Sstest as model where model."<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ propertyName + "= ?";<br />
&nbsp;&nbsp;&nbsp;Query queryObject = getSession().createQuery(queryString);<br />
&nbsp;&nbsp;&nbsp;queryObject.setParameter(0, value);<br />
&nbsp;&nbsp;&nbsp;return queryObject.list();<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find by property name failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public List findByUsername(Object username) {<br />
&nbsp;&nbsp;return findByProperty(USERNAME, username);<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public List findByPassword(Object password) {<br />
&nbsp;&nbsp;return findByProperty(PASSWORD, password);<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public List findAll() {<br />
&nbsp;&nbsp;log.debug("finding all Sstest instances");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;String queryString = "from Sstest";<br />
&nbsp;&nbsp;&nbsp;Query queryObject = getSession().createQuery(queryString);<br />
&nbsp;&nbsp;&nbsp;return queryObject.list();<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("find all failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public Sstest merge(Sstest detachedInstance) {<br />
&nbsp;&nbsp;log.debug("merging Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Sstest result = (Sstest) getSession().merge(detachedInstance);<br />
&nbsp;&nbsp;&nbsp;log.debug("merge successful");<br />
&nbsp;&nbsp;&nbsp;return result;<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("merge failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void attachDirty(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("attaching dirty Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getSession().saveOrUpdate(instance);<br />
&nbsp;&nbsp;&nbsp;log.debug("attach successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("attach failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp;public void attachClean(Sstest instance) {<br />
&nbsp;&nbsp;log.debug("attaching clean Sstest instance");<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;getSession().lock(instance, LockMode.NONE);<br />
&nbsp;&nbsp;&nbsp;log.debug("attach successful");<br />
&nbsp;&nbsp;} catch (RuntimeException re) {<br />
&nbsp;&nbsp;&nbsp;log.error("attach failed", re);<br />
&nbsp;&nbsp;&nbsp;throw re;<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt"><span style="color: #ff6600">Sstest.hbm.xml</span><br />
&lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"<br />
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&gt;<br />
&lt;!-- <br />
&nbsp;&nbsp;&nbsp; Mapping file autogenerated by MyEclipse Persistence Tools<br />
--&gt;<br />
&lt;hibernate-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;class name="hibernateDao.Sstest" table="sstest" schema="dbo" catalog="manager"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" type="java.lang.Integer"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="id" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;generator class="increment" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="username" type="java.lang.String"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="username" length="10" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="password" type="java.lang.String"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;column name="password" length="20" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/property&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/class&gt;<br />
&lt;/hibernate-mapping&gt;<br />
<span style="color: #ff6600">struts-config.xml</span></span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"&gt;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&lt;struts-config&gt;<br />
&nbsp; &lt;data-sources /&gt;<br />
&nbsp; &lt;form-beans &gt;<br />
&nbsp;&nbsp;&nbsp; &lt;form-bean name="register1Form" type="com.yourcompany.struts.form.Register1Form" /&gt;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp; &lt;/form-beans&gt;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp; &lt;global-exceptions /&gt;<br />
&nbsp; &lt;global-forwards /&gt;<br />
&nbsp; &lt;action-mappings &gt;<br />
&nbsp;&nbsp;&nbsp; &lt;action<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attribute="register1Form"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; input="/form/register1.jsp"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="register1Form"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path="/register1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope="request"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type="com.yourcompany.struts.action.Register1Action"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="failed" path="/error.jsp" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;forward name="success" path="/success.jsp" /&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/action&gt;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp; &lt;/action-mappings&gt;</span></span></span></p>
<p><span style="font-size: 12pt"><span style="font-size: 10pt"><span style="font-size: 12pt">&nbsp; &lt;message-resources parameter="com.yourcompany.struts.ApplicationResources" /&gt;<br />
&lt;/struts-config&gt;</span></span></span></p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
   <img src ="http://www.blogjava.net/qin/aggbug/235318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-10-19 17:56 <a href="http://www.blogjava.net/qin/archive/2008/10/19/235318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(struts2+spring)急:struts2 与spring 相结合做出的登陆实例，运行时怎么找不到文件呀，请教~~~~(已解决)</title><link>http://www.blogjava.net/qin/archive/2008/09/24/230929.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Wed, 24 Sep 2008 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/09/24/230929.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/230929.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/09/24/230929.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/230929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/230929.html</trackback:ping><description><![CDATA[急:struts2 与spring 相结合做出的登陆实例，运行时怎么找不到文件，相关信息如下所示：<br />
<h1>HTTP Status 404 - /testSpringStruts2/</h1>
<hr noShade size="1" />
<p><strong>type</strong> Status report</p>
<p><strong>message</strong> <u>/testSpringStruts2/</u></p>
<p><strong>description</strong> <u>The requested resource (/testSpringStruts2/) is not available.</u></p>
<hr noShade size="1" />
<h3>Apache Tomcat/6.0.18</h3>
<br />
同时控制栏出现下列错误信息：<br />
2008-9-24 16:32:12 org.apache.catalina.core.StandardContext filterStart<br />
严重: Exception starting filter struts<br />
java.lang.NullPointerException<br />
&nbsp;at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:188)<br />
&nbsp;at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:479)<br />
&nbsp;at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:450)<br />
&nbsp;at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:407)<br />
&nbsp;at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:239)<br />
&nbsp;at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)<br />
&nbsp;at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:152)<br />
&nbsp;at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)<br />
&nbsp;at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)<br />
&nbsp;at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)<br />
&nbsp;at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)<br />
&nbsp;at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:108)<br />
&nbsp;at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)<br />
&nbsp;at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)<br />
&nbsp;at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1116)<br />
&nbsp;at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1214)<br />
&nbsp;at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)<br />
&nbsp;at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)<br />
&nbsp;at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)<br />
&nbsp;at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)<br />
&nbsp;at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)<br />
&nbsp;at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)<br />
&nbsp;at java.lang.Thread.run(Thread.java:595)<br />
2008-9-24 16:32:12 org.apache.catalina.core.StandardContext start<br />
严重: Error filterStart<br />
<br />
<br />
原代码如下：<br />
<span style="color: #ff0000">LoginService.java</span><br />
package org.test.service;<br />
public interface LoginService {<br />
&nbsp;public boolean isLogin(String username,String password);<br />
}<br />
<br />
<span style="color: #ff0000">LoginServiceImpl .java<br />
</span>
<p>package org.test.service.impl;</p>
<p>import org.test.service.LoginService;</p>
<p>public class LoginServiceImpl implements LoginService {</p>
<p>&nbsp;public boolean isLogin(String username, String password) {<br />
&nbsp;&nbsp;//判断用户所以输入的数据是否为gao,qin，如果是则登陆成功,否则失败<br />
&nbsp;&nbsp;// TODO Auto-generated method stub<br />
&nbsp;&nbsp;if(username.equals("gao") &amp;&amp; password.equals("qin")){<br />
&nbsp;&nbsp;&nbsp;return true;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return false;<br />
&nbsp;}<br />
</p>
<p>}<br />
<span style="color: #ff0000"><br />
LoginAction.java</span></p>
<p>package org.test.struts2Action;</p>
<p>import org.test.service.LoginService;</p>
<p>import com.opensymphony.xwork2.ActionSupport;</p>
<p>@SuppressWarnings("serial")<br />
public class LoginAction extends ActionSupport {<br />
&nbsp;private String username;<br />
&nbsp;private String password;<br />
&nbsp;@SuppressWarnings("unused")<br />
&nbsp;private LoginService loginService;<br />
&nbsp;@Override<br />
&nbsp;public String execute() throws Exception {<br />
&nbsp;&nbsp;if(loginService.isLogin(username, password)){<br />
&nbsp;&nbsp;&nbsp;return SUCCESS;<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return INPUT;<br />
&nbsp;}<br />
&nbsp;public String getUsername() {<br />
&nbsp;&nbsp;return username;<br />
&nbsp;}<br />
&nbsp;public void setUsername(String username) {<br />
&nbsp;&nbsp;this.username = username;<br />
&nbsp;}<br />
&nbsp;public String getPassword() {<br />
&nbsp;&nbsp;return password;<br />
&nbsp;}<br />
&nbsp;public void setPassword(String password) {<br />
&nbsp;&nbsp;this.password = password;<br />
&nbsp;}<br />
&nbsp;public void setLoginService(LoginService loginService) {<br />
&nbsp;&nbsp;this.loginService = loginService;<br />
&nbsp;}<br />
}<br />
<br />
<br />
<span style="color: #ff0000">applicationContext.xml</span><br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;beans<br />
&nbsp;xmlns="http://www.springframework.org/schema/beans"<br />
&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<br />
&nbsp;xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"&gt;<br />
<span style="color: #0000ff">&nbsp;&lt;bean id="loginService" class="org.test.service.impl.LoginServiceImpl"&gt;&lt;/bean&gt;<br />
&nbsp;&lt;bean id="loginAction" &nbsp;class="org.test.struts2Action.LoginAction" scope="prototype"&gt;<br />
&nbsp;&nbsp;&lt;property name="loginService"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;ref local="loginService"/&gt;<br />
&nbsp;&nbsp;&lt;/property&gt;<br />
&nbsp;&lt;/bean&gt;<br />
</span>&lt;/beans&gt;<br />
<br />
struts.xml<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE struts PUBLIC<br />
&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br />
&nbsp;&nbsp;&nbsp; "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;<br />
&lt;struts&gt;<br />
<span style="color: #0000ff">&lt;constant name="struts.objectFactory" value="spring"/&gt;</span><br />
&nbsp;&lt;package name="qin" namespace="/" extends="struts-default"&gt;<br />
<span style="color: #0000ff">&nbsp;&nbsp;&lt;action name="login" class="loginAction"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;result name="success"&gt;/result.jsp&lt;/result&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;result name="input"&gt;/index.jsp&lt;/result&gt;<br />
&nbsp;&nbsp;&lt;/action&gt;<br />
</span>&nbsp;&lt;/package&gt;&nbsp;<br />
&lt;/struts&gt;<br />
<br />
web.xml<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;web-app version="2.4" <br />
&nbsp;xmlns="http://java.sun.com/xml/ns/j2ee" <br />
&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <br />
&nbsp;xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee <br />
&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;<br />
&nbsp; &lt;welcome-file-list&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;<br />
&nbsp; &lt;/welcome-file-list&gt;<br />
<span style="color: #0000ff">&lt;context-param&gt;<br />
&nbsp;&nbsp;&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;<br />
&nbsp;&nbsp;&lt;param-value&gt;classpath:applicationContext.xml&lt;/param-value&gt;<br />
&nbsp;&lt;/context-param&gt;</span><br />
&nbsp; <span style="color: #0000ff">&lt;filter&gt;<br />
&nbsp; &nbsp;&lt;filter-name&gt;struts&lt;/filter-name&gt;<br />
&nbsp; &nbsp;&lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class&gt;<br />
&nbsp; &lt;/filter&gt;<br />
&nbsp; &lt;filter-mapping&gt;<br />
&nbsp; &nbsp;&lt;filter-name&gt;struts&lt;/filter-name&gt;<br />
&nbsp; &nbsp;&lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp; &lt;/filter-mapping&gt;<br />
&nbsp; &lt;listener&gt;<br />
&nbsp; &nbsp;&lt;listener-class&gt;org.springframework.web.context.ContextLoader&lt;/listener-class&gt;<br />
&nbsp; &lt;/listener&gt;</span><span style="color: #3366ff"><br />
</span>&lt;/web-app&gt;<br />
<br />
<span style="color: #ff0000">index.jsp</span></p>
<p>&lt;%@ page language="java" pageEncoding="GB2312"%&gt;<br />
&lt;%@ taglib uri="/struts-tags" prefix="s"%&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt;</p>
<p>&nbsp; &lt;/head&gt;&nbsp; <br />
&nbsp; &lt;body&gt; <br />
&nbsp; &nbsp;&lt;h2&gt;用户登陆&lt;/h2&gt;<br />
&nbsp; &nbsp;&lt;s:form action="login.action" method="post"&gt;<br />
&nbsp; &nbsp;&nbsp;&lt;s:textfield name="username" label="用户名"&gt;&lt;/s:textfield&gt;<br />
&nbsp; &nbsp;&nbsp;&lt;s:password name="password" label="密码"&gt;&lt;/s:password&gt;<br />
&nbsp; &nbsp;&nbsp;&lt;s:submit value="登陆" name="sure"&gt;&lt;/s:submit&gt;<br />
&nbsp; &nbsp;&lt;/s:form&gt;&nbsp; <br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
<br />
<span style="color: #ff0000">result.jsp</span></p>
<p>&lt;%@ page language="java" pageEncoding="GB2312"%&gt;<br />
&lt;%@ taglib uri="/struts-tags" prefix="s"%&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt;</p>
<p>&nbsp; &lt;/head&gt;&nbsp; <br />
&nbsp; &lt;body&gt; <br />
&nbsp; &nbsp;&lt;h2&gt;用户信息&lt;/h2&gt;<br />
&nbsp; &nbsp; 用户名：&lt;s:property value="username" escape="request"/&gt;<br />
&nbsp; &nbsp; 密码：${requestScope.password }<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
</p>
  <img src ="http://www.blogjava.net/qin/aggbug/230929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-09-24 16:45 <a href="http://www.blogjava.net/qin/archive/2008/09/24/230929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(struts2)struts2国际化资源文件不再用native2ascii的方法</title><link>http://www.blogjava.net/qin/archive/2008/09/24/230806.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Wed, 24 Sep 2008 01:19:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/09/24/230806.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/230806.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/09/24/230806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/230806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/230806.html</trackback:ping><description><![CDATA[struts2国际化资源文件不再用native2ascii的方法,而是用eclipse中的一个插件,安装些插件通过Eclipse中的软件升级（Software Update）就OK了，下面我们来看一下安装步骤吧：<br />
1、展开Eclipse的Help菜单，将鼠标移到Software Update子项，在出现的子菜单中点击Find and Install；<br />
2、在Install/Update对话框中选择Search for new features to install，点击Next；<br />
3、在Install对话框中点击New Remote Site；<br />
4、在New Update Site对话框的Name填入&#8220;PropEdit&#8221;或其它任意非空字符串，在URL中填入http://propedit.sourceforge.jp/eclipse/updates/；<br />
5、在Site to include to search列表中，除上一步加入的site外的其它选项去掉，点击Finsih；<br />
6、在弹出的Updates对话框中的Select the features to install列表中将所有结尾为&#8220;3.1.x&#8221;的选项去掉（适用于Eclipse 3.2版本的朋友）；<br />
7、点击Finish关闭对话框；<br />
8、在下载后，同意安装，再按提示重启Eclipse，在工具条看到形似vi的按钮表示安装成功，插件可用。此时，Eclpise中所有properties文件的文件名前有绿色的P的图标作为标识。
 <img src ="http://www.blogjava.net/qin/aggbug/230806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-09-24 09:19 <a href="http://www.blogjava.net/qin/archive/2008/09/24/230806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>启动tomcat出现:警告: Settings: Could not parse struts.locale setting, substituting default VM locale</title><link>http://www.blogjava.net/qin/archive/2008/09/23/230552.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Tue, 23 Sep 2008 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/09/23/230552.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/230552.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/09/23/230552.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/230552.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/230552.html</trackback:ping><description><![CDATA[<p>在struts2项目中，我启动服务器tomcat，总是出现<br />
<span style="color: #ff0000">警告: Settings: Could not parse struts.locale setting, substituting default VM locale<br />
<span style="color: #000000">有时候就因为这样服务器都启动不了，烦得很，不知道你们遇到过此问题没有，是什么原因出现此类问题呀，有什么解决方法吗？</span></span></p>
<img src ="http://www.blogjava.net/qin/aggbug/230552.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-09-23 09:01 <a href="http://www.blogjava.net/qin/archive/2008/09/23/230552.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>commons-fileupload组件上传文件及相关问题</title><link>http://www.blogjava.net/qin/archive/2008/09/15/229015.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Mon, 15 Sep 2008 10:15:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/09/15/229015.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/229015.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/09/15/229015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/229015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/229015.html</trackback:ping><description><![CDATA[<p>今天我用commons-fileupload组件上传文件，代码是正确的，而且我把commons-fileupload-1.2.1.jar,commons-io-1.4.jar也导入到项目目项中，但总是出现这样那样的错误，让我花了不少的时间,所以我把相关发出来,对有此类的问题的朋友有所帮助<br />
如:<br />
<span style="color: #ff0000">java.lang.RuntimeException: Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location] <br />
</span>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<br />
在网上查了很多资料，后来总结了一下，如果你是在struts2项目中用commons-fileupload组件的话，那就应</p>
<p>该把修改web.xml，把原来的<br />
&lt;filter-mapping&gt;<br />
&nbsp; &lt;filter-name&gt;struts&lt;/filter-name&gt;<br />
&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
改为<br />
&lt;filter-mapping&gt;<br />
&nbsp; &lt;filter-name&gt;struts&lt;/filter-name&gt;<br />
&nbsp; &lt;url-pattern&gt;*.action&lt;/url-pattern&gt;<br />
&nbsp;&lt;/filter-mapping&gt;<br />
而上传页面调用时直接用文件名调用（如upload.jsp）。struts2只处理 *.action 的请求。<br />
或者<br />
&lt;filter&gt; <br />
&lt;filter-name&gt;struts2&lt;/filter-name&gt; <br />
&lt;filter-class&gt; <br />
org.apache.struts2.dispatcher.FilterDispatcher <br />
&lt;/filter-class&gt; <br />
&lt;/filter&gt; </p>
<p>&lt;filter-mapping&gt; <br />
&lt;filter-name&gt;struts2&lt;/filter-name&gt; <br />
&lt;url-pattern&gt;/*&lt;/url-pattern&gt; <br />
&lt;/filter-mapping&gt; <br />
去掉也行</p>
<p>若是<span style="color: #ff0000">java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException</span>错误<br />
那就有可能是导包的问题，若用的是右击项目，选择属性，然后导入相应的包，就有可能出显此类的错误，解决方法是：把commons-fileupload-1.2.1.jar,commons-io-1.4.jar复制到到WEB-INF下的lib目录中，虽然效果是一样，但不会出错了<br />
<br />
附:<br />
upload.jsp</p>
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="GB2312"%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'upload.jsp' starting page&lt;/title&gt;<br />
&lt;/head&gt;&nbsp;&nbsp;<br />
&nbsp; &lt;body&gt;<br />
&nbsp; &lt;form action="upload" method="post" enctype="multipart/form-data"&gt; <br />
&nbsp; &nbsp;用户名：&lt;input type="text" name="username"&gt;&lt;br&gt;<br />
&nbsp; &nbsp;密码：&lt;input type="password" name="password"&gt;&lt;br&gt;<br />
&nbsp; &nbsp;文件1:&lt;input type="file" name="file1"&gt;&lt;br&gt;<br />
&nbsp;&nbsp;&nbsp; 文件2:&lt;input type="file" name="file2"&gt;&lt;br&gt;&nbsp;<br />
&nbsp; &nbsp;&lt;input type="submit" value="提交"&gt;&lt;br&gt;<br />
&nbsp; &lt;/form&gt;<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
UploadServlet.java</p>
<p>package com.test.servlet1;</p>
<p>import java.io.File;<br />
import java.io.FileOutputStream;<br />
import java.io.IOException;<br />
import java.io.InputStream;<br />
import java.io.OutputStream;<br />
import java.util.List;</p>
<p>import javax.servlet.ServletException;<br />
import javax.servlet.http.HttpServlet;<br />
import javax.servlet.http.HttpServletRequest;<br />
import javax.servlet.http.HttpServletResponse;</p>
<p>import org.apache.commons.fileupload.FileItem;<br />
import org.apache.commons.fileupload.FileUploadException;<br />
import org.apache.commons.fileupload.disk.DiskFileItemFactory;<br />
import org.apache.commons.fileupload.servlet.ServletFileUpload;</p>
<p>public class UploadServlet extends HttpServlet {</p>
<p>&nbsp;public void doPost(HttpServletRequest request, HttpServletResponse response)<br />
&nbsp;&nbsp;&nbsp;throws ServletException, IOException {<br />
&nbsp;&nbsp;DiskFileItemFactory factory = new DiskFileItemFactory();<br />
&nbsp;&nbsp;String path = request.getRealPath("/upload");<br />
&nbsp;&nbsp;// 设置传轮输文件的大小，当小于1024时，把文件存在兹盘上<br />
&nbsp;&nbsp;factory.setRepository(new File(path));<br />
&nbsp;&nbsp;factory.setSizeThreshold(1024 * 1024);<br />
&nbsp;&nbsp;ServletFileUpload upload = new ServletFileUpload(factory);<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;List&lt;FileItem&gt; list = upload.parseRequest(request);<br />
&nbsp;&nbsp;&nbsp;for(FileItem item : list){<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(item.isFormField()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String name = item.getFieldName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String value&nbsp; = item.getString("GB2312");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(name, value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String name = item.getFieldName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String value = item.getName();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start = value.lastIndexOf("\\");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String fileName = value.substring(start+1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.setAttribute(name, fileName);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//item.write(new File(path,fileName));&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputStream os = new FileOutputStream(new File(path,fileName));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream is = item.getInputStream();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 将文件is写到os里<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[] buffer = new byte[400]; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int lenght = 0 ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((lenght = is.read(buffer ))&gt;0){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.write(buffer,0,lenght);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;os.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;} catch (FileUploadException e) {<br />
&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br />
&nbsp;&nbsp;&nbsp;System.out.println("文件上传出错"+e.getMessage());<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;request.getRequestDispatcher("upload/result.jsp").forward(request, response);<br />
&nbsp;}<br />
}<br />
result.jsp</p>
<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="GB2312"%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'result.jsp' starting page&lt;/title&gt;<br />
&nbsp; &lt;/head&gt;&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;用户名:${requestScope.username }<br />
&nbsp;密码:${requestScope.password }<br />
&nbsp;文件1:${requestScope.file1 }<br />
&nbsp;文件2:${requestScope.file2 }<br />
&nbsp; &lt;/body&gt;<br />
&lt;/html&gt;<br />
</p>
<p><br />
&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><br />
</p>
<img src ="http://www.blogjava.net/qin/aggbug/229015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-09-15 18:15 <a href="http://www.blogjava.net/qin/archive/2008/09/15/229015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Exception in thread "main" org.hibernate.PropertyNotFoundException错误</title><link>http://www.blogjava.net/qin/archive/2008/08/27/225072.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Wed, 27 Aug 2008 08:15:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/08/27/225072.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/225072.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/08/27/225072.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/225072.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/225072.html</trackback:ping><description><![CDATA[在hibernate中用数据关联时，不管是一对一，一对多，还是多对多时，我写出来的程序怎么总是下面此类的错误呀，有那位朋友知道的，希望能给我解决一下，谢谢！<br />
<span style="color: #ff0000"><span style="color: #ff0000">Exception in thread "main" org.hibernate.PropertyNotFoundException: Could not find a getter for tPassport in class org.qin.onetoone.TUser</span></span><br />
&nbsp;at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282)<br />
&nbsp;at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275)<br />
&nbsp;at org.hibernate.mapping.Property.getGetter(Property.java:260)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:255)<br />
&nbsp;at org.hibernate.tuple.AbstractEntityTuplizer.&lt;init&gt;(AbstractEntityTuplizer.java:121)<br />
&nbsp;at org.hibernate.tuple.PojoEntityTuplizer.&lt;init&gt;(PojoEntityTuplizer.java:55)<br />
&nbsp;at org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:64)<br />
&nbsp;at org.hibernate.tuple.EntityMetamodel.&lt;init&gt;(EntityMetamodel.java:257)<br />
&nbsp;at org.hibernate.persister.entity.AbstractEntityPersister.&lt;init&gt;(AbstractEntityPersister.java:412)<br />
&nbsp;at org.hibernate.persister.entity.SingleTableEntityPersister.&lt;init&gt;(SingleTableEntityPersister.java:108)<br />
&nbsp;at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)<br />
&nbsp;at org.hibernate.impl.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:216)<br />
&nbsp;at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1176)<br />
&nbsp;at org.qin.uniqueFKonetoone.TUserOprate.&lt;init&gt;(TUserOprate.java:12)<br />
&nbsp;at org.qin.uniqueFKonetoone.TUserTest.main(TUserTest.java:12) 
 <img src ="http://www.blogjava.net/qin/aggbug/225072.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-08-27 16:15 <a href="http://www.blogjava.net/qin/archive/2008/08/27/225072.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>值得在2008学习五种的JAVA技术</title><link>http://www.blogjava.net/qin/archive/2008/08/21/223382.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Thu, 21 Aug 2008 01:29:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/08/21/223382.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/223382.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/08/21/223382.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/223382.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/223382.html</trackback:ping><description><![CDATA[Carlos Perez(著名的Java技术人员)最近发表了他认为值得在2008学习五种的JAVA技术，它们是：OSGi，Java内容仓库，GWT，Groovy和云雾计算。
<p>　　Carlos Perez(著名的Java技术人员)最近发表了他认为值得在2008学习五种的JAVA技术，它们是：</p>
<p>　　OSGi(基于Java的动态模型规范)</p>
<p>　　注：OSGi(Open Service Gateway Initiative)指OSGi Alliance组织制定的一个基于Java语言的服务(业务)规范——OSGi服务平台(Service Platform)。 该规范和核心部分是一个框架 ，其中定义了应用程序的生命周期模式和服务注册。这个框架实现了一个优雅、完整和动态的组件模型。应用程序(称为bundle)无需重新引导可以被远程安装、启动、升级和卸载(其中Java包/类的管理被详细定义)。API中还定义了运行远程下载管理政策的生命周期管理。服务注册允许bundles去检测新服务和取消的服务，然后相应配合。</p>
<p>　　Java内容仓库，最早于2002年2月由JCP发布</p>
<p>　　注：JCP(Java Community Process) 是一个开放的国际组织，主要由Java开发者以及被授权者组成，职能是发展和更新Java技术规范、参考实现(RI)、技术兼容包(TCK)。JCP维护的规范包括J2ME、J2SE、J2EE，XML，OSS，JAIN等。组织成员可以提交JCR(Java SpECification RequESts)，通过特定程序以后，进入到下一版本的规范里面。</p>
<p>　　Google Web Toolkit(最早发布于2006年5月)</p>
<p>　　注：GWT(Google Web Toolkit) 是 Google 推出的一个开发 Ajax 应用的框架，它支持用 Java 开发和调试 Ajax 应用。</p>
<p>　　Groovy(最早发布于2004年5月)</p>
<p>　　注：Groovy是一种面向对象的程序设计语言，作为Java程序设计语言的一种可选替代品，并增加了Python，Ruby和Smalltalk中的一些特性。</p>
<p>　　云雾计算(用于虚拟服务器的设计理念，或无需EJB的分布式计算)</p>
<p>　　注：&#8220;云雾计算&#8221;的英文即Cloud Computing。自谷歌发展起来之后，极大规模的服务器集中在一起，统一管理，形成了&#8220;云雾计算&#8221;(&#8220;Cloud Computing&#8221;)的物质基础。&#8220;云雾计算&#8221;是社会计算能力的大集中，也是所谓&#8220;SaaS&#8221;的客观基础。</p>
<p>　　有趣的是，其中有几种技术已经成熟，或者说是&#8220;老&#8221;了，并且正在其被推荐应用的项目中有成熟的应用。当然，这五种技术都很有价值。OSGi是Eclipse的建模系统，Goovry因其正式的规范说明和频繁的改进版发布赢得支持。GWT也算是成熟稳定，云雾计算正在受到更为广泛市场的接受。</p>
<p>　　JRC和云雾计算是最近才被广泛接受的技术，但是厂商正在利用竞争和商业关系猎取支持来发布相关的产品(比如GridGain，Gigaspaces，和Terracotta)，而有的厂商还正在对此进行策划(TSS计划在TSSJS2008发布JCR相关的声明)。</p>
<p>　　这是一份很有趣的列表。你认为应该在2008学习哪几种Java技术呢?哪些技术现在正在展露头角并成为你以后学习的方向呢?(http://developer.e800.com.cn/articles/2008/87/1218074549696_1.html)</p>
<img src ="http://www.blogjava.net/qin/aggbug/223382.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-08-21 09:29 <a href="http://www.blogjava.net/qin/archive/2008/08/21/223382.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>myeclipse 6.0 一打开就自动关闭???</title><link>http://www.blogjava.net/qin/archive/2008/08/11/221201.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Mon, 11 Aug 2008 01:08:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/08/11/221201.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/221201.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/08/11/221201.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/221201.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/221201.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;myeclipse 6.0 一打开就自动关闭,是什么原因呀<br />
<span lang="EN-US" style="font-size: 10.5pt; color: black; font-family: 宋体; mso-bidi-font-family: ArialMT-Identity-H; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">&nbsp;
<p class="0">&nbsp;</p>
<!--endfragment--><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit">
<p class="0">&nbsp;</p>
<p class="0"><!--endfragment--></p>
<!--endfragment--></o:lock></v:shapetype></span>
<img src ="http://www.blogjava.net/qin/aggbug/221201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-08-11 09:08 <a href="http://www.blogjava.net/qin/archive/2008/08/11/221201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2EE</title><link>http://www.blogjava.net/qin/archive/2008/07/28/218175.html</link><dc:creator>qin</dc:creator><author>qin</author><pubDate>Mon, 28 Jul 2008 13:33:00 GMT</pubDate><guid>http://www.blogjava.net/qin/archive/2008/07/28/218175.html</guid><wfw:comment>http://www.blogjava.net/qin/comments/218175.html</wfw:comment><comments>http://www.blogjava.net/qin/archive/2008/07/28/218175.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/qin/comments/commentRss/218175.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/qin/services/trackbacks/218175.html</trackback:ping><description><![CDATA[<p>J2EE相关知识，问题答疑</p>
 <img src ="http://www.blogjava.net/qin/aggbug/218175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/qin/" target="_blank">qin</a> 2008-07-28 21:33 <a href="http://www.blogjava.net/qin/archive/2008/07/28/218175.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>