struts框架学习过程中的问题。
生活随笔
收集整理的這篇文章主要介紹了
struts框架学习过程中的问题。
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1,錯(cuò)誤: java.lang.NullPointerException: Module 'null' not found.
錯(cuò)誤原因,struts運(yùn)行需要的.jar文件拷貝不足,應(yīng)該把它們加入到classpath中。 2,連接oracle出錯(cuò),no suitable driver 錯(cuò)誤原因不在于驅(qū)動(dòng)有誤,而是由于url寫錯(cuò)了, jdbc:oracle:thin:@127.0.0.1:1521:mydatabase 寫成了:jdbc:oracle.thin:@127.0.0.1:1521:mydatabase 3,insert功能實(shí)現(xiàn)過(guò)程中最主要的障礙。 (1)如何設(shè)置date類型。 可以利用preparestatement.setDate(index,java.sql.Date.valueOf("2000-01-02") (2)另外,首先要保證數(shù)據(jù)庫(kù)連接正確。 4,使用html:submit生成的按鈕沒(méi)有標(biāo)簽文字,具體使用的代碼為<html:submit property="submit"><bean:message key="button.logon"/></html:submit> 經(jīng)檢查,代碼無(wú)誤,真正原因在于.properties文件中的button.logon="xxx",不應(yīng)該加引號(hào)。 5,JSP頁(yè)中使用include的正確寫法。 <%@ include file="taglib.jsp" %> 6,struts框架配置oracle數(shù)據(jù)源。 首先有3個(gè)必需的.jar包 commons-dbcp-1.2.jar commons-pool-1.2.jar commons-legacy-1.0.jar需要拷貝到$TOMCAT/common/lib下 對(duì)于struts1.2來(lái)說(shuō),沒(méi)有commons-legacy-1.0.jar,另外ojdbc14.jar要導(dǎo)入到buildpath中。 對(duì)于struts-config.xml中的datasource配置,struts1.1和struts1.2有很大區(qū)別。 Struts 1.1???????????? Struts 1.2 driverClass????????? driverClassName user???????????????????? username 7,nowrap(不換行)的用法。 在某一單元格,如果設(shè)置了width屬性,則nowrap不其作用,超出的文字會(huì)換行。 只有未設(shè)置width的單元格,超出的文字會(huì)將表格拉長(zhǎng),以適應(yīng)文字的長(zhǎng)度。 8,JSP頁(yè)上的圖片在Dreamweaver編輯時(shí),可以顯示,但是運(yùn)行時(shí)沒(méi)有顯示出來(lái)。 當(dāng)我們使用welcome-file-list設(shè)定了默認(rèn)主頁(yè),該主頁(yè)中的圖片所對(duì)應(yīng)的當(dāng)前路徑已經(jīng)是項(xiàng)目的路徑了。所以主頁(yè)放在項(xiàng)目的直接目錄下為好。 9,錯(cuò)誤:No action config found for the specified url 錯(cuò)誤原因:struts-config.xml中,action的path有問(wèn)題。 10,錯(cuò)誤:org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java) 從錯(cuò)誤提示來(lái)看是在創(chuàng)建ActionForm時(shí)出錯(cuò),經(jīng)查證為struts-config.xml中ActionForm的類名寫錯(cuò)了。 11,錯(cuò)誤:請(qǐng)求logon.do時(shí)出錯(cuò),The requested resource(/logon.do) is not avaliable. 對(duì)于form的action屬性,如果form不是用html:form構(gòu)建的話,action不能寫成action="/logon.do"的形式,只能寫成,action="logon.do"的形式。如果是使用html:form來(lái)構(gòu)建的話,則action既可以寫成action="/logon.do",也可以寫成:action="logon.do"。 12,錯(cuò)誤:org.apache.struts.chain.commands.servlet.CreateAction.getAction(CreateAction.java:66) 參照上面10的錯(cuò)誤,查找struts-config.xml,發(fā)現(xiàn)action的配置沒(méi)有錯(cuò),經(jīng)查找是action在構(gòu)造的時(shí)候沒(méi)有擴(kuò)展Action類。即public class LogonAction{},應(yīng)該寫成:public class LogonAction extends Action{} 13,如何在JSP頁(yè)中使用html標(biāo)簽實(shí)現(xiàn)密碼輸入框。 使用:<html:password property="password"/>,而不是用<html:text property="password"/> 14,Action mapping中的parameter屬性有何用途? 用來(lái)指定Action的配置參數(shù),在Action類的execute()方法中可以調(diào)用mapping的getParameter()方法來(lái)獲取該參數(shù)。 15,Foward中的contextRelative屬性有何用途? 如果改性設(shè)為true,表示當(dāng)path屬性以“/”開頭時(shí),給出的時(shí)相對(duì)于當(dāng)前上下文的URL 16,關(guān)于session-timeout. session-timeout用來(lái)指定session的過(guò)期時(shí)間,以分鐘為單位。 17,運(yùn)用validator框架進(jìn)行驗(yàn)證時(shí),出現(xiàn)錯(cuò)誤提示:No validatorAction named minLength found for filed userName. 錯(cuò)誤原因:<field property="name" depends="required,mask,minlength">中的minlength寫成了minLength。 18,this.getClass().getName()返回什么? 會(huì)返回類名(包括包名)。 19,Eclipse中路徑問(wèn)題: 在.java文件中和在XML配置文件中的當(dāng)前目錄為項(xiàng)目的目錄。 但直接運(yùn)行部署在項(xiàng)目中的文件如批處理文件,當(dāng)前路徑為eclipse的啟動(dòng)目錄。 20,struts框架的國(guó)際化問(wèn)題 當(dāng)struts配置文件的<controller>元素的lcoale屬性設(shè)為true時(shí),struts框架將用戶的locale實(shí)例保存在session范圍內(nèi),以便struts 能自動(dòng)根據(jù)locale實(shí)例從Resource Bundle中選擇合適的資源文件,如果用戶locale為英文時(shí),struts會(huì)向用戶返回來(lái)自于application_en.properties文件的文本內(nèi)容,當(dāng)為中文時(shí),依次搜尋application_ch_CN.properties,application_ch.properties,application.properties 另外,當(dāng)需要中文時(shí),application_ch_CN.properties中的中文字符必需經(jīng)過(guò)轉(zhuǎn)換,轉(zhuǎn)換的過(guò)程為:native2ascii -encoding gb2312 源文件 application_ch_CN.properties。 21,啟動(dòng)tomcat時(shí)出現(xiàn)錯(cuò)誤提示:Offending class: javax/servlet/Servlet.class 到網(wǎng)上查了一下,發(fā)現(xiàn)是加載類沖突,原來(lái)是我在build.xml中將$TOMCAT_HOME/lib下的.jar文件也放到項(xiàng)目的lib里了。tomcat加在自己lib下的.jar文件后,再加載項(xiàng)目的lib,就重復(fù)了,造成了類沖突。解決方法,不把tomcat_home的.jar文件拷貝到項(xiàng)目的lib即可。 ? 22,Q:build.xml腳本開頭放置<property file="xxx.properties"/>是什么意思? A:ant將加載文件中所聲明的任何變量。 ? 23,Q:spring加載Hibernate entity的兩種方法。 A: 第一種方法是利用entity中的注解進(jìn)行解析。 <bean id="sessionFactory" class="org.spring......"> ??????? <property name="annotatedClasses"> ??????????? <list> ??????????????? <value>com.customer.pack.Employee</value> ??????????????? <value>com.customer.pack.Project</value> ??????????????? . ????????????????. ??????????????? . ??????????? </list> ??????? </property> 第二種方法是利用xml配置文件進(jìn)行解析。 <bean id="sessionFactory"> <property name="mappingResources"> <list> <value>com/customer/pack/Employee.hbm.xml</value> <value>com/customer/pack/Project.hbm.xml</value> . . . </list> </property> </bean> ps:? sessionFactory是數(shù)據(jù)源的代理。
錯(cuò)誤原因,struts運(yùn)行需要的.jar文件拷貝不足,應(yīng)該把它們加入到classpath中。 2,連接oracle出錯(cuò),no suitable driver 錯(cuò)誤原因不在于驅(qū)動(dòng)有誤,而是由于url寫錯(cuò)了, jdbc:oracle:thin:@127.0.0.1:1521:mydatabase 寫成了:jdbc:oracle.thin:@127.0.0.1:1521:mydatabase 3,insert功能實(shí)現(xiàn)過(guò)程中最主要的障礙。 (1)如何設(shè)置date類型。 可以利用preparestatement.setDate(index,java.sql.Date.valueOf("2000-01-02") (2)另外,首先要保證數(shù)據(jù)庫(kù)連接正確。 4,使用html:submit生成的按鈕沒(méi)有標(biāo)簽文字,具體使用的代碼為<html:submit property="submit"><bean:message key="button.logon"/></html:submit> 經(jīng)檢查,代碼無(wú)誤,真正原因在于.properties文件中的button.logon="xxx",不應(yīng)該加引號(hào)。 5,JSP頁(yè)中使用include的正確寫法。 <%@ include file="taglib.jsp" %> 6,struts框架配置oracle數(shù)據(jù)源。 首先有3個(gè)必需的.jar包 commons-dbcp-1.2.jar commons-pool-1.2.jar commons-legacy-1.0.jar需要拷貝到$TOMCAT/common/lib下 對(duì)于struts1.2來(lái)說(shuō),沒(méi)有commons-legacy-1.0.jar,另外ojdbc14.jar要導(dǎo)入到buildpath中。 對(duì)于struts-config.xml中的datasource配置,struts1.1和struts1.2有很大區(qū)別。 Struts 1.1???????????? Struts 1.2 driverClass????????? driverClassName user???????????????????? username 7,nowrap(不換行)的用法。 在某一單元格,如果設(shè)置了width屬性,則nowrap不其作用,超出的文字會(huì)換行。 只有未設(shè)置width的單元格,超出的文字會(huì)將表格拉長(zhǎng),以適應(yīng)文字的長(zhǎng)度。 8,JSP頁(yè)上的圖片在Dreamweaver編輯時(shí),可以顯示,但是運(yùn)行時(shí)沒(méi)有顯示出來(lái)。 當(dāng)我們使用welcome-file-list設(shè)定了默認(rèn)主頁(yè),該主頁(yè)中的圖片所對(duì)應(yīng)的當(dāng)前路徑已經(jīng)是項(xiàng)目的路徑了。所以主頁(yè)放在項(xiàng)目的直接目錄下為好。 9,錯(cuò)誤:No action config found for the specified url 錯(cuò)誤原因:struts-config.xml中,action的path有問(wèn)題。 10,錯(cuò)誤:org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java) 從錯(cuò)誤提示來(lái)看是在創(chuàng)建ActionForm時(shí)出錯(cuò),經(jīng)查證為struts-config.xml中ActionForm的類名寫錯(cuò)了。 11,錯(cuò)誤:請(qǐng)求logon.do時(shí)出錯(cuò),The requested resource(/logon.do) is not avaliable. 對(duì)于form的action屬性,如果form不是用html:form構(gòu)建的話,action不能寫成action="/logon.do"的形式,只能寫成,action="logon.do"的形式。如果是使用html:form來(lái)構(gòu)建的話,則action既可以寫成action="/logon.do",也可以寫成:action="logon.do"。 12,錯(cuò)誤:org.apache.struts.chain.commands.servlet.CreateAction.getAction(CreateAction.java:66) 參照上面10的錯(cuò)誤,查找struts-config.xml,發(fā)現(xiàn)action的配置沒(méi)有錯(cuò),經(jīng)查找是action在構(gòu)造的時(shí)候沒(méi)有擴(kuò)展Action類。即public class LogonAction{},應(yīng)該寫成:public class LogonAction extends Action{} 13,如何在JSP頁(yè)中使用html標(biāo)簽實(shí)現(xiàn)密碼輸入框。 使用:<html:password property="password"/>,而不是用<html:text property="password"/> 14,Action mapping中的parameter屬性有何用途? 用來(lái)指定Action的配置參數(shù),在Action類的execute()方法中可以調(diào)用mapping的getParameter()方法來(lái)獲取該參數(shù)。 15,Foward中的contextRelative屬性有何用途? 如果改性設(shè)為true,表示當(dāng)path屬性以“/”開頭時(shí),給出的時(shí)相對(duì)于當(dāng)前上下文的URL 16,關(guān)于session-timeout. session-timeout用來(lái)指定session的過(guò)期時(shí)間,以分鐘為單位。 17,運(yùn)用validator框架進(jìn)行驗(yàn)證時(shí),出現(xiàn)錯(cuò)誤提示:No validatorAction named minLength found for filed userName. 錯(cuò)誤原因:<field property="name" depends="required,mask,minlength">中的minlength寫成了minLength。 18,this.getClass().getName()返回什么? 會(huì)返回類名(包括包名)。 19,Eclipse中路徑問(wèn)題: 在.java文件中和在XML配置文件中的當(dāng)前目錄為項(xiàng)目的目錄。 但直接運(yùn)行部署在項(xiàng)目中的文件如批處理文件,當(dāng)前路徑為eclipse的啟動(dòng)目錄。 20,struts框架的國(guó)際化問(wèn)題 當(dāng)struts配置文件的<controller>元素的lcoale屬性設(shè)為true時(shí),struts框架將用戶的locale實(shí)例保存在session范圍內(nèi),以便struts 能自動(dòng)根據(jù)locale實(shí)例從Resource Bundle中選擇合適的資源文件,如果用戶locale為英文時(shí),struts會(huì)向用戶返回來(lái)自于application_en.properties文件的文本內(nèi)容,當(dāng)為中文時(shí),依次搜尋application_ch_CN.properties,application_ch.properties,application.properties 另外,當(dāng)需要中文時(shí),application_ch_CN.properties中的中文字符必需經(jīng)過(guò)轉(zhuǎn)換,轉(zhuǎn)換的過(guò)程為:native2ascii -encoding gb2312 源文件 application_ch_CN.properties。 21,啟動(dòng)tomcat時(shí)出現(xiàn)錯(cuò)誤提示:Offending class: javax/servlet/Servlet.class 到網(wǎng)上查了一下,發(fā)現(xiàn)是加載類沖突,原來(lái)是我在build.xml中將$TOMCAT_HOME/lib下的.jar文件也放到項(xiàng)目的lib里了。tomcat加在自己lib下的.jar文件后,再加載項(xiàng)目的lib,就重復(fù)了,造成了類沖突。解決方法,不把tomcat_home的.jar文件拷貝到項(xiàng)目的lib即可。 ? 22,Q:build.xml腳本開頭放置<property file="xxx.properties"/>是什么意思? A:ant將加載文件中所聲明的任何變量。 ? 23,Q:spring加載Hibernate entity的兩種方法。 A: 第一種方法是利用entity中的注解進(jìn)行解析。 <bean id="sessionFactory" class="org.spring......"> ??????? <property name="annotatedClasses"> ??????????? <list> ??????????????? <value>com.customer.pack.Employee</value> ??????????????? <value>com.customer.pack.Project</value> ??????????????? . ????????????????. ??????????????? . ??????????? </list> ??????? </property> 第二種方法是利用xml配置文件進(jìn)行解析。 <bean id="sessionFactory"> <property name="mappingResources"> <list> <value>com/customer/pack/Employee.hbm.xml</value> <value>com/customer/pack/Project.hbm.xml</value> . . . </list> </property> </bean> ps:? sessionFactory是數(shù)據(jù)源的代理。
轉(zhuǎn)載于:https://blog.51cto.com/electiger/16712
總結(jié)
以上是生活随笔為你收集整理的struts框架学习过程中的问题。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 我喜欢台湾
- 下一篇: redhat9.0配置apache 出现