?
Struts+Spring+Hibernate練習(完整)
工具:
????Eclipse3.1、MyEclipse4.03、Tomcat5.5.9、Properties Editor插件、MySql4.1.13
?
新建工程:名稱為 login
?
創建Struts框架
?
創建 index.jsp,增加一鏈接指向 login.jsp
?
按下Ctrl + N,創建 login.jsp、LoginAction,使用MyEclipse的向導就可以了,記得選對正確的版本
?
在ActionForm配置頁中選擇類型為動態Form,并繼承于DynaValidatorForm,新增兩個屬性:username、password,在創建jsp文件打上鉤,將路徑改為/login.jsp,然后下一步,改LoginAction的Input source改為/login.jsp,點擊完成
?
按下Ctrl + N 創建一個forwards,記得選對正確的版本
name 輸入 indexGo
路徑選擇 /index.jsp
?
配置validator
先添加Struts插件,使用向導
Plugin class : org.apache.struts.validator.ValidatorPlugIn
Property : pathnames
Value : /WEB-INF/validator-rules.xml,/WEB-INF/validation.xml
這里需要兩個xml文件
現在創建“
validation.xml
”?文件
?
在這里說明一點,我使用MyEclipse創建的Struts框架中缺少了validator-rules.xml文件,需要動拷貝到WEB-INF目錄中
此文件可以到http://struts.apache.org/下載
?
文件內容如下:
<form-validation>
?<formset>
??<form name="loginForm">
???<field property="username" depends="required">
????<arg0 key="prompt.username" />
???</field>
???<field property="password" depends="required">
????<arg0 key="prompt.password" />
???</field>
??</form>
?</formset>
</form-validation>
?<formset>
??<form name="loginForm">
???<field property="username" depends="required">
????<arg0 key="prompt.username" />
???</field>
???<field property="password" depends="required">
????<arg0 key="prompt.password" />
???</field>
??</form>
?</formset>
</form-validation>
?
編輯資源文件“ApplicationResources.properties”
增加以下內容
?
prompt.username=User Name
prompt.password=User Password
prompt.password=User Password
errors.required={0} is required.
?
再創建中文件資源文件“ApplicationResources_zh_CN.properties”
增加以下內容
prompt.username=用戶名稱
prompt.password=登錄密碼
prompt.password=登錄密碼
errors.required={0} 必需填寫!
?
修改struts-config.xml文件
在以下位置增加綠色字體部份
<action-mappings >
??? <action
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="com.test.struts.action.LoginAction" />
??? <action
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="com.test.struts.action.LoginAction" />
? </action-mappings>
?
這里說明提交的數據必需經過驗證,而驗證則是通過validator框架進行的。
?
修改LoginAction.java文件的execute方法,內容如下
public ActionForward execute(
??ActionMapping mapping,
??ActionForm form,
??HttpServletRequest request,
??HttpServletResponse response) {
??DynaValidatorForm loginForm = (DynaValidatorForm) form;
??String username=loginForm.getString("username");
??String password=loginForm.getString("password");
??if(username.equals("test")||password.equals("test")){
???return mapping.findForward("indexGo");
??}else{
???return mapping.getInputForward();
??}
?}
??ActionMapping mapping,
??ActionForm form,
??HttpServletRequest request,
??HttpServletResponse response) {
??DynaValidatorForm loginForm = (DynaValidatorForm) form;
??String username=loginForm.getString("username");
??String password=loginForm.getString("password");
??if(username.equals("test")||password.equals("test")){
???return mapping.findForward("indexGo");
??}else{
???return mapping.getInputForward();
??}
?}
?
現在再修改一下login.jsp
增加以下綠色字體部份
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
?
其中charset=UTF-8 是使用UTF-8的字符編碼,這也是為了支持國際化而使用的。
?
好了,現在可以啟動Tomcat進行測試了
http://localhost/login/
?這里說明一下,我的Tomcat已經裝端口號改為80了,所以就不必使用http://localhost:8080/login/這樣的方法了。
?
如果不輸入任何數據而直接提交表單的話就可以看到效果了。
?
好了,如果沒有什么問題的話就繼續往下看吧,如果有問題的話就得往上看了^_^
?
現在創建Spring框架了,在這里我將Spring所有的包全部加載進去,因為我還不知道具體用到哪些類,全部加進去方便點
?
單選框選第二個,這樣的話所有的類庫和標簽等都將拷貝到項目中去,這樣方便以后的布署
下一步后是創建配置文件,將文件放到“WebRoot/WEB-INF”目錄下,文件名稱為“applicationContext.xml”
?
?
配置struts-config.xml文件,添加(spring)的插件
?
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
??? <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
? </plug-in>
??? <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
? </plug-in>
?
?
修改LoginAction配置
?
原:
<action
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="com.test.struts.action.LoginAction" />
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="com.test.struts.action.LoginAction" />
?
? </action-mappings>
?
改為:
<action
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="org.springframework.web.struts.DelegatingActionProxy" />
????? attribute="loginForm"
????? input="/login.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? validate="true"
????? type="org.springframework.web.struts.DelegatingActionProxy" />
? </action-mappings>
?
?
綠色字體部份為修改內容
這里將使用spring的代理器來對Action進行控制
?
當提交到/login.do是將控制權交給了spring,然后由spring來決定是否轉回到struts的Action
?
現在來配置spring
?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
?
<beans>
?<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false"></bean>
?<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false"></bean>
</beans>
?
綠色字體是關于轉交控制權的配置內容
?
屬性singleton="false",指明了Action 的實例獲取方式為每次重新創建。解決了Struts中令人詬病的線程安全問題(Struts中,由一個Action實例處理所有的請求,這就導致了類公用資源在并發請求中的線程同步問題。)(摘自spring開發指南)
?
這時如果你要進行測試也是可以的,不過為了省點時間就不進行測試了。
?
public class LoginAction extends Action {
?private UserDAO userDAO;
建立數據庫在 這里我使用的是mysql4.1.13
?
CREATE TABLE `user` (
? `ID` int(11) NOT NULL auto_increment,
? `USERNAME` varchar(50) NOT NULL default '',
? `PASSWORD` varchar(50) NOT NULL default '',
? PRIMARY KEY? (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
? `ID` int(11) NOT NULL auto_increment,
? `USERNAME` varchar(50) NOT NULL default '',
? `PASSWORD` varchar(50) NOT NULL default '',
? PRIMARY KEY? (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
?
添加記錄 insert into user (USERNAME,PASSWORD) values ('test','test')
?
創建Hibernate框架
在配置界面中配置數據庫的連接部份,重要的是點擊鏈接將jdbc拷貝到lib目錄中
使用MyEclipse的數據Database Explorer工具創建User.hmb.xml、AbstractUser.java、User.java映射文件
創建完成后可以將自動生成的hibernate.cfg.xml刪除
?
創建UserDAO.java、UserDAOImp.java
UserDAO.java
public interface UserDAO {
?? public abstract boolean isValidUser(String username, String password);
}
UserDAOImp.java
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.test.Hibernate.SessionFactory;
public class UserDAOImp extends HibernateDaoSupport implements UserDAO {
??? private SessionFactory sessionFactory;
??? private static String hql = "from User u where u.username=? ";
??? public boolean isValidUser(String username, String password) {
?????? List userList = this.getHibernateTemplate().find(hql, username);
?????? if (userList.size() > 0) {
?????????? return true;
?????? }
?????? return false;
??? }
}
?
修改LoginAction.java文件,使用userDao的方法來進行用戶驗證
package com.test.struts.action;
?
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
?
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
?
import com.test.UserDAO;
public class LoginAction extends Action {
?private UserDAO userDAO;
?
?public UserDAO getUserDAO() {
??return userDAO;
?}
??return userDAO;
?}
?
?public void setUserDAO(UserDAO userDAO) {
??this.userDAO = userDAO;
?}
??this.userDAO = userDAO;
?}
?
?public ActionForward execute(ActionMapping mapping, ActionForm form,
???HttpServletRequest request, HttpServletResponse response) {
??DynaValidatorForm loginForm = (DynaValidatorForm) form;
??// TODO Auto-generated method stub
??String username = (String) loginForm.get("username");
??String password = (String) loginForm.get("password");
??loginForm.set("password", null);
??if (userDAO.isValidUser(username,password)) {
???return mapping.findForward("indexGo");
??} else {
???return mapping.getInputForward();
??}
?}
???HttpServletRequest request, HttpServletResponse response) {
??DynaValidatorForm loginForm = (DynaValidatorForm) form;
??// TODO Auto-generated method stub
??String username = (String) loginForm.get("username");
??String password = (String) loginForm.get("password");
??loginForm.set("password", null);
??if (userDAO.isValidUser(username,password)) {
???return mapping.findForward("indexGo");
??} else {
???return mapping.getInputForward();
??}
?}
}
綠色字體為修改部份
綠色字體為修改部份
?
現在剩下最后的spring配置了
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
?
<beans>
?<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
??<property name="driverClassName">
???<value>com.mysql.jdbc.Driver</value>
??</property>
??<property name="url">
???<value>jdbc:mysql://localhost/test</value>
??</property>
??<property name="username">
???<value>root</value>
??</property>
??<property name="password">
???<value>root</value>
??</property>
?</bean>
?<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
??<property name="driverClassName">
???<value>com.mysql.jdbc.Driver</value>
??</property>
??<property name="url">
???<value>jdbc:mysql://localhost/test</value>
??</property>
??<property name="username">
???<value>root</value>
??</property>
??<property name="password">
???<value>root</value>
??</property>
?</bean>
?
?<!-- 配置sessionFactory, 注意這里引入的包的不同? -->
?<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
??<property name="dataSource">
???<ref local="dataSource" />
??</property>
??<property name="mappingResources">
???<list>
????<value>com/test/Hibernate/User.hbm.xml</value>
???</list>
??</property>
??<property name="hibernateProperties">
???<props>
????<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
????<prop key="hibernate.show_sql">true</prop>
???</props>
??</property>
?</bean>
?<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
??<property name="dataSource">
???<ref local="dataSource" />
??</property>
??<property name="mappingResources">
???<list>
????<value>com/test/Hibernate/User.hbm.xml</value>
???</list>
??</property>
??<property name="hibernateProperties">
???<props>
????<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
????<prop key="hibernate.show_sql">true</prop>
???</props>
??</property>
?</bean>
?
?<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
??<property name="sessionFactory">
???<ref local="sessionFactory" />
??</property>
?</bean>
??<property name="sessionFactory">
???<ref local="sessionFactory" />
??</property>
?</bean>
?
?<bean id="userDAO" class="com.test.UserDAOImp">
??<property name="sessionFactory">
???<ref local="sessionFactory" />
??</property>
?</bean>
??<property name="sessionFactory">
???<ref local="sessionFactory" />
??</property>
?</bean>
?
?<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
??<property name="transactionManager">
???<ref bean="transactionManager" />
??</property>
??<property name="target">
???<ref local="userDAO" />
??</property>
??<property name="transactionAttributes">
???<props>
????<prop key="insert*">PROPAGATION_REQUIRED</prop>
????<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
???</props>
??</property>
?</bean>
??<property name="transactionManager">
???<ref bean="transactionManager" />
??</property>
??<property name="target">
???<ref local="userDAO" />
??</property>
??<property name="transactionAttributes">
???<props>
????<prop key="insert*">PROPAGATION_REQUIRED</prop>
????<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
????<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
???</props>
??</property>
?</bean>
?
?<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
??<property name="userDAO">
???<ref bean="userDAOProxy" />
??</property>
?</bean>
</beans>
??<property name="userDAO">
???<ref bean="userDAOProxy" />
??</property>
?</bean>
</beans>
?
現在可以進行測試了!
?
在編寫代碼有配置內容時一定要注意 hibernate 和 hibernate3 ,這兩個包的名字就只差一個字,千萬不要有錯,否則找錯誤可是很難的。
?
怎么獲取不到action?報錯:The requested resource (Servlet action is not available) is not available.
<action path="/Room_View"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
validate="false"
input="/Room_First.jsp">
<forward name="success" path="/Room_First.jsp" />
</action>
hibernate_context.xml:
<bean name="/Room_View" class="SSH.Actions.RoomViewAction" singleton="false">
<property name="userDao">
<ref local="userDaoProxy" />
</property>
</bean>
可是運行的時候報錯:
<Error> <HTTP> <BEA-101017> <[ServletContext(id=6274035,name=SSH,context-path=/SSH)] Root cause of ServletException.
javax.servlet.jsp.JspException: Exception forwarding for name RoomView: javax.servlet.ServletException: Error creating bean with name '/Room_View' defined in ServletContext resource [/WEB-INF/Hibernate_Context.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'UserDao' of bean class [SSH.Actions.RoomViewAction]: Bean property 'UserDao' is not writable or has an invalid setter method: Does the parameter type of the setter match the return type of the getter?
at org.apache.struts.taglib.logic.ForwardTag.doForward(ForwardTag.java:125)
at org.apache.struts.taglib.logic.ForwardTag.doEndTag(ForwardTag.java:105)
at jsp_servlet.__index._jspService(__index.java:151)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:463)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at SSH.Commons.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:32)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6458)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
請問,這是什么原因
但怎么做單元測試呢?
2005-12-14 13:19:37 org.apache.struts.validator.ValidatorPlugIn init
嚴重: Skipping validation rules file from '/WEB-INF/validator_rules.xml'. No stream could be opened.
javax.servlet.ServletException: Skipping validation rules file from '/WEB-INF/validator_rules.xml'. No stream could be opened.
at org.apache.struts.validator.ValidatorPlugIn.initResources(ValidatorPlugIn.java:226)
at org.apache.struts.validator.ValidatorPlugIn.init(ValidatorPlugIn.java:162)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1003)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:836)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3823)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4128)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:846)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1076)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:420)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:1967)
at org.apache.catalina.startup.Catalina.start(Catalina.java:541)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2005-12-14 13:19:37 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet action as unavailable
2005-12-14 13:19:37 org.apache.catalina.core.ApplicationContext log
嚴重: Servlet /login threw load() exception
javax.servlet.UnavailableException: Cannot load a validator resource from '/WEB-INF/validator_rules.xml,/WEB-INF/validation.xml'
樓主,我試了兩天了,都是這個錯誤,我以前用hibernate2就沒有這樣過,怎么回事啊?我發現配置文件中,只要就入下面這段就會出錯:
<property name="mappingResources">
<list>
<value>com/ssh/pro/dto/Manageinfo.hbm.xml</value>
</list>
</property>
我都郁悶死了!
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
oksonic請幫忙看看吧,謝謝了。
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
oksonic請幫忙看看吧,謝謝了。急啊!
資源文件“ApplicationResources_zh_CN.properties”
prompt.username=用戶名稱
prompt.password=登錄密碼
errors.required={0} 必需填寫!
都變成了亂碼
prompt.username=????
prompt.password=????
errors.required={0} ?????
請問oksonic怎樣解決啊?謝謝!
http://www.aygfsteel.com/oksonic/archive/2005/11/06/18368.html
這里提供的資源文件轉換插件
Poperties Editor
http://propedit.sourceforge.jp/eclipse/updates/
請使用在線安裝,選中所有文件進行安裝
如果安裝正確,那編輯完成后,保存,使用文本編輯器打開資源文件,出現以下格式表示正確。
/u1234/u3455
這時再頁面中聲明使用UTF-8的編碼即可。
這是hibernate3 和 hibernate2 的不同之處
可我也找不到Action,把人搞死了!
謝謝oksonic你的例子配置成功了,我覺得再加一層service就好了
用service去調用 dao
還有就是兩個表一對多(比如球隊和隊員)hai當增加隊員時候 用getHibernateTemlate.save()方法時候TEAMID這個字段怎么和父表關連,用純hibernate
時候需要先查詢出這個隊員的所屬球隊再增加,那用這個該怎么半。
還有我用的eclipse 當用<html:link>傳遞中文參數時候在控制臺總是打印亂碼,請大家和oksonic幫幫忙。謝謝!
提一下大家找不到Action可能是applicationContext.xml的問題,還有就是.hbm.xml文件的class路徑是不是正確,我開始就是這個路徑搞錯了
希望能幫助大家!!!!
亂碼問題請正確安裝
http://www.aygfsteel.com/oksonic/archive/2005/11/06/18368.html
這里提供的資源文件轉換插件
Poperties Editor
http://propedit.sourceforge.jp/eclipse/updates/
請使用在線安裝,選中所有文件進行安裝
如果安裝正確,那編輯完成后,保存,使用文本編輯器打開資源文件,出現以下格式表示正確。
/u1234/u3455
這時再頁面中聲明使用UTF-8的編碼即可。
能不能幫我看看下面的問題?謝謝!
oksonic和各位大俠你們好,先謝謝oksonic的教程了,我想直接把你提供的代碼調試出來,可你代碼中把連接mysql數據庫的文件hibernate.cfg.xml刪除了啊!可我應該怎樣在程序中設置后才能連接上我建的mysql數據庫啊?(也就是要改哪個具體的文件后才能連接上我建的mysql數據庫啊?)能不能說說具體的操作步驟啊?謝謝!盼回復!
http://propedit.sourceforge.jp/eclipse/updates/ 下載了
jp.gr.java_conf.ussiy.app.propedit_4.8.2.jar后,把它放在我的eclipse3.1.1的plugins文件夾下后,新建了資源文件ApplicationResources_zh_CN.properties,在ApplicationResources_zh_CN.properties中加入
prompt.username=用戶名稱
prompt.password=登錄密碼
errors.required={0} 必需填寫!
頁面login.jsp中也聲明了使用UTF-8的編碼的啊!
<%@ page language="java"contentType="text/html; charset=UTF-8" %>
可ApplicationResources_zh_CN.properties中還是出現了亂碼啊!(如下)測試的頁面login.jsp中也出現了亂碼????? 請問oksonic是什么回事?是不是我下載的文件jp.gr.java_conf.ussiy.app.propedit_4.8.2.jar不對?還是這文件放的位置不對啊?再一次向你表示感謝!盼回復!
prompt.username=????
prompt.password=????
errors.required={0} ?????
作者所說的是在線安裝Poperties Editor
依次點擊Help -> SoftWare Updates -> find and install
選中Search for new features to install ->next
點擊 New Remote site
給這個更新站點取個名字 如:luanma
url填寫http://propedit.sourceforge.jp/eclipse/updates/即可
點擊ok回到剛才的窗口
選中剛才新加的站點名稱,點擊finish
他會自動找出與你所用的eclipse版本相適應的插件
全部選中
后面只要選擇install all即可
最后會提示你重起你的myeclipse
啟動后按oksonic所說的操作即可解決亂碼問題。
ApplicationContext ctx = new FileSystemXmlApplicationContext(paths);
UserDAO dao = (UserDAO) ctx.getBean("userDAO");
大家可以在main方法中測試dao,如果有問題會打到控制臺上
找不到Action就是因為dao有錯,而且無法在tomcat上捕獲
我完全按你的教程做的,但在加入插件
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
后
tomcat 報告
Could not find ContextLoaderPlugIn's
WebApplicationContext as ServletContext attribute
請問是什么原因?
非常非常非...常感謝oksonic的例子,經過一個多月來的學習,現在初步可以開發一些小東東了。但我現在遇到了分頁問題,在網上搜索大半天,也看了不少例子,但就是沒有像oksonic這樣詳細的,
在java視線中有個例子非常好:
http://forum.javaeye.com/viewtopic.php?t=14657
對于我們這種新手來說,描述的不夠詳細,我們需要完整的測試程序。
我希望oksonic 能做一個分頁的例子,在下感激不盡!!!!
非常非常非...常感謝oksonic的例子,經過一個多月來的學習,現在初步可以開發一些小東東了。但我現在遇到了分頁問題,在網上搜索大半天,也看了不少例子,但就是沒有像oksonic這樣詳細的,
在java視線中有個例子非常好:
http://forum.javaeye.com/viewtopic.php?t=14657
但對于我們這種新手來說,描述的不夠詳細,我們需要完整的測試程序。
我希望oksonic 能做一個分頁的例子,我們將感激不盡!!!!
你好!oksonic,我在按照你的例子做的時候,我現在用sqlserver數據庫
為什么總是出現:
org.springframework.orm.hibernate3.HibernateQueryException:
testuser is not mapped. [from testuser u where u.username=?];
nested exception is org.hibernate.hql.ast.QuerySyntaxError: testuser is not mapped. [from testuser u where u.username=?]
可是我已經首先映謝過呀,
請教各位大哥是什么原因造成的!
可以先將內容保存到aa.txt
然后在文件所在目錄執行JDK命令:
native2ascii aa.txt ApplicationResources_zh_CN.properties
就可以了
Hibernate: select user0_.ID as ID, user0_.USERNAME as USERNAME0_, user0_.PASSWORD as PASSWORD0_ from test__user user0_ where user0_.USERNAME=?
test__user table is not exists.怎么會把user表解釋成這個樣子呢?
我的環境是:
Eclipse3.1.2
MyEclipse4.1
JDK1.5
Tomcat5.5
MySql4.1
郁悶一天了,大俠們能解釋一下不?
將User.hbm.xml中的
<class name="com.test.hibernate.User" table="user" catalog="test">
修改成
<class name="com.test.hibernate.User" table="user">
速。。。謝謝啊 呵呵~~
(本人struts較為熟悉,spring和hibernate基本不懂。)
難得有這么好的貼啊!!期待樓主有更多精品出現!!
你好!oksonic,我在按照你的例子做的時候,我現在用sqlserver數據庫
為什么總是出現:
org.springframework.orm.hibernate3.HibernateQueryException:
testuser is not mapped. [from testuser u where u.username=?];
nested exception is org.hibernate.hql.ast.QuerySyntaxError: testuser is not mapped. [from testuser u where u.username=?]
可是我已經首先映謝過呀,
請教各位大哥是什么原因造成的!
"
我也碰到類似問題,網上實在找不到答案,請教!
message Servlet action is not available的解決方法:
將validator-rule.xml拷貝到E:\apache-tomcat-5.5.15\webapps\login\WEB-INF下
將mysql-connector-java-3.1.12-bin.jar拷貝到E:\apache-tomcat-5.5.15\webapps\login\WEB-INF\lib下
說明:由于在eclipse使用的是tomcat的插件,所以一定要注意當運行tomcat的時候這些包在tomcat的目錄就找不到了,所以需要手動將這些文件拷到tomcat下你的工程的目錄里.
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
的問題解決:
從www.hibernate.org上下載hibernate-3.1.2.zip,解壓后將etc文件夾中的log4j.properties放到
C:\eclipse\login\WebRoot\WEB-INF\classes中
有什么問題可以聯系我大家互相學習:)
QQ:364576663
MSN:yangxudong_hotmail.com
blog:http://spaces.msn.com/bboyyang/
我在使用MyEclipse的數據Database Explorer工具創建User.hmb.xml、AbstractUser.java、User.java映射文件 的時候 總是報
An internal error occurred during "Genterating Artirfacts"這個錯
哪位大俠能告訴我怎么解決啊 是不是我的myeclipse版本不對啊 ??
我用的是myeclipse enterprise workbench4.1 GA 數據庫是sql server
小弟很著急啊
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:454)
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:281)
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:217)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
$Proxy1.isValidUser(Unknown Source)
com.test.struts.action.LoginAction.execute(LoginAction.java:57)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.
但是oksonic最后給出的applicationContext.xml中卻包含了4個action,請將
<bean name="/add" class="com.test.struts.action.AddAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
<bean name="/find" class="com.test.struts.action.FindAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
<bean name="/del" class="com.test.struts.action.DelAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
在applicationContext.xml中注釋掉
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
就會出現驗證錯誤?
HTTP Status 404 - Servlet action is not available
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
而當能驗證了又出現了找不到類的錯誤:
2006-4-10 7:00:56 org.apache.struts.action.RequestProcessor processActionCreate
嚴重: No action instance for path /login could be created
java.lang.ClassNotFoundException: org.springframework.web.struts.DelegatingActionProxy
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:117)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:143)
at org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcessor.java:280)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:218)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
請問這里在那里的配置出錯了?
我改了login.jsp中的<%@ page language="java" contentType="text/html; charset=UTF-8" %>
,但是還是不能顯示中文,顯示的是亂碼。
中文的資源文件里寫上中文,保存之后再打開,就顯示亂碼了。
我實在不知道怎么解決。謝謝!!!!!!!!!!
2006-4-20 15:34:31 org.apache.catalina.core.StandardContext start
嚴重: Context startup failed due to previous errors
請問一下:這是在Eclipse中啟動Tomcat服務器時出現的問題,并且最后服務器也啟動了。之后會出現如下問題
The requested resource (/office/) is not available.
我想知道這是什么錯誤!打擾了,希望您能幫我解決!謝謝
買了spring in action后,大體看了一下,一直想找個簡單的例子練一下
這個例子很不錯,對于入門很有幫助
感覺總體思想跟用ibatis差不多
都是按接口編程
在dao上面,還可以在封裝一層service,用service調用dao中的方法
這樣以后換框架也比較方便
javax.servlet.ServletException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.id as id, user0_.username as username0_, user0_.password as password0_ from user user0_ where user0_.username=? and password=?]; SQL state [S1000]; error code [156]; 在關鍵字 'user' 附近有語法錯誤。; nested exception is java.sql.SQLException: 在關鍵字 'user' 附近有語法錯誤。
怎么找也找不出來原因,我用樓主的方法做了好幾個工程,都是這個樣子。
請各位大俠賜教。
謝謝了。急啊!
javax.servlet.ServletException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.id as id, user0_.username as username0_, user0_.password as password0_ from user user0_ where user0_.username=? and password=?]; SQL state [S1000]; error code [156]; 在關鍵字 'user' 附近有語法錯誤。; nested exception is java.sql.SQLException: 在關鍵字 'user' 附近有語法錯誤。
怎么找也找不出來,我的源碼都是拷的樓主的,我用的SQLSERVER數據庫。
有沒有人遇到過這種情況啊?急啊!!
檢查struts-config.XML中
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
org.apache.struts.validator.ValidatorPlugIn 這個類名是否正確
添加后,檢查
struts-config.XML的第二個plugin配置,和loginForm的驗證class配置
applicationContext.xml中配置
驗證不通過,不能顯示html:error標簽,嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚嗚
按照jurassic所說的
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
的問題解決:
從www.hibernate.org上下載hibernate-3.1.2.zip,解壓后將etc文件夾中的log4j.properties放到
C:\eclipse\login\WebRoot\WEB-INF\classes中
這樣就可以看到進一步的錯誤提示。
我的是Error creating bean with name 'sessionFactory' defined in ServletContext resource
解決:
http://forums.opensymphony.com/thread.jspa?threadID=29259
Is there a chance that you have several compass/lucene jar files from different versions? Maybe in common/lib or server/lib?
我把自己所有的WEB-INF\lib下所有清空,然后把sonic的原版lib拷貝了一遍就解決了。我覺得可能是因為在添加各種框架的時候產生的冗余和沖突。
測試,結果
type Status report
message Servlet action is not available
description The requested resource (Servlet action is not available) is not available.
唯一不同的是
1。他那個rule.xml,他是手動復制過去的,而我本來就有,所以不需要復制
2。他用的是struts1.2,我用的struts1.1
其他應該都一樣了
之前用struts1.1就會出現剛才說的情況了
按照上面那個兄弟的說法,把lib清空,替換成作者的lib就可以了
使用這個也報用戶密碼錯, 怎么回事..?
感謝你的貢獻, 你的無私.......
要是每個人都向你這么想就好了
1.按照sonic的動畫教程,最后的幾步中,一個原因是mysql驅動程序放在項目的/WEB-INF/lib 下,可以將之拷貝到此lib文件下,在進入Eclipse按刷新.
2.你的applicationContext.xml文件中,所配置的各項信息,特別是文件名路徑,和所對應的是否是一樣,注意大小寫以及符號 '/' ,和' . '。
3.配置structs-config.xml 插件時,注意路徑問題,一定要對應正確的路徑名,在此也反映Sonic 的認真態度,以及深表感謝 ~..~
4.按照sonic的動畫教程一步一步下來,應該沒問題,希望很多和我一樣的新手一起進步,在sonic 帶領下,,謝謝。 聯系qq: 49002149 共勉~~
是版本的問題嗎?如果是版本的問題,有沒有辦法解決啊??
我的那個validator-rules.xml是直接拷的Struts1.1工程中的那個。難道是這個validator-rules.xml的問題嗎??
大家有沒有遇到過Validator不能驗證的問題啊?請指教!!
如果你的struts用的1.2版本的,一定要用oksonic提供的那個validator-rules.xml,不然就不會驗證.
如果你的struts用的是1.1版本的,就用自動生成的validator-rules.xml就可以了.
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.IllegalArgumentException: Resources cannot be null.
org.apache.commons.validator.Validator.<init>(Validator.java:188)
org.apache.struts.validator.Resources.initValidator(Resources.java:475)
org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:104)
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:928)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我花了幾天的時間做,可是到最后他給我報此錯誤
還請樓主給我解決一下,不勝感激呀,真的好頭痛!!!!!!!!!
http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=200644231255 Java反編譯的研究
http://www.kpwang.com/pc/view.jsp?board_id=1&article_id=20064614542 Java實現ftp功能(源程序)
javax.servlet.ServletException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.ID as ID, user0_.username as username0_, user0_.password as password0_ from user user0_ where user0_.username=? and password=?]; SQL state [HY000]; error code [156]; [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'user' 附近有語法錯誤。; nested exception is java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'user' 附近有語法錯誤。
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute query; uncategorized SQLException for SQL [select user0_.ID as ID, user0_.username as username0_, user0_.password as password0_ from user user0_ where user0_.username=? and password=?]; SQL state [HY000]; error code [156]; [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'user' 附近有語法錯誤。; nested exception is java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'user' 附近有語法錯誤。
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:96)
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:257)
org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:411)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)
com.test.UserDAOImp.isValidUser(UserDAOImp.java:16)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
$Proxy1.isValidUser(Unknown Source)
com.test.struts.action.LoginAction.execute(LoginAction.java:52)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
javax.servlet.ServletException: Cannot find ActionMappings or ActionFormBeans collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
原文少了一段,但作者的錄象中有這段. 補上:
把原來的
<form-beans >
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm" />
</form-beans>
改為
<form-beans >
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property type="password" name="java.lang.String"/>
<form-property type="username" name="java.lang.String"/>
</form-bean>
</form-beans>
就可以了。按樓主的錄象試了2遍,沒有問題
大家一起交流一下
很急!!!!
謝謝了~!~
謝謝!
Error creating bean with name 'UserinfoDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyAccessExceptionsException: PropertyAccessExceptionsException (1 errors); nested propertyAccessExceptions are: [org.springframework.beans.TypeMismatchException: Failed to convert property value of type [net.sf.hibernate.impl.SessionFactoryImpl] to required type [org.hibernate.SessionFactory] for property 'sessionFactory']
這個是什么錯呀?
Spring 開發指南
V0.8 預覽版
作者:夏昕
里面Struts+Spring+Hibernate說得非常詳細!!
太分散啦
hibernate是基于對象查詢的。。所以在查詢的時候一定要寫你類的名字而不是你在數據庫中的表的名字。 。。