Java web 三大框架异常学习总结
struts2.1.8+hibernate2.5.6+spring3.0(ssh2三大框架)常見(jiàn)異常原因和解決方案
http://www.cnblogs.com/lanxuezaipiao/p/3619949.html經(jīng)過(guò)暑期兩個(gè)月對(duì)ssh2的學(xué)習(xí)和OA項(xiàng)目的實(shí)戰(zhàn)訓(xùn)練,我對(duì)J2EE技 術(shù)中著名的三大框架ssh2已漸漸有所理解和掌握。從搭建ssh2框架環(huán)境開(kāi)始到寫(xiě)出第一個(gè)簡(jiǎn)單的ssh2登陸程序,到最后整個(gè)OA項(xiàng)目的實(shí)戰(zhàn), 期間遇到了重重困難和阻礙, 就連搭建環(huán)境就花了整整一天的功
夫,而成功運(yùn)行第一個(gè)ssh2程序更花了好幾天,當(dāng)然我相信這是大部分學(xué)習(xí)ssh2這門(mén)技術(shù) 都會(huì)經(jīng)歷的過(guò)程,相信也是每個(gè)程序員學(xué)習(xí)任何一門(mén)新的技術(shù)都會(huì)走的路程。如今,項(xiàng)目已成功收尾,在這欣喜之余,我也愿意將我學(xué)習(xí)ssh2中遇到的一些常見(jiàn) 異常問(wèn)題總結(jié)如下
,希望大家可以少走一些彎路,或者在遇到問(wèn)題時(shí)可以及時(shí)解決。
PS:我的編程運(yùn)行環(huán)境是MyEclipse8.6 + Tomcat6.1.3 + MySql
問(wèn)題一:出現(xiàn)異常 java.lang.NoSuchMethodError: antlr.collections.AST.getLine()問(wèn)題
原因:是JAR包的沖突,包 antlr2.7.2 與 antlr2.7.6 沖突(一個(gè)是tomcat下的包,一個(gè)是自己引入ssh2的包)
解決方案:刪除包antlr2.7.2 即可,具體方法:
在MyEclipse下,windows-->preferences-->在文本框中搜索struts2-->選擇antlr2.7.2-->remove
或者直接在tomcat該應(yīng)用的目錄WEB-INF\lib 刪除 antlr2.7.2.jar?
?
問(wèn)題二:異常java.lang.NullPointerException
原因:空指針異常產(chǎn)生的主要原因如下:
(1) 當(dāng)一個(gè)對(duì)象不存在時(shí)又調(diào)用其方法會(huì)產(chǎn)生異常
? ?obj.method() // obj對(duì)象不存在
(2) 當(dāng)訪問(wèn)或修改一個(gè)對(duì)象不存在的字段時(shí)會(huì)產(chǎn)生異常
? ?obj.method() ?// method方法不存在
解決方案:調(diào)試,找出異常產(chǎn)生的具體原因,再根據(jù)具體原因具體解決。
問(wèn)題三:異常The Struts dispatcher cannot be found. ?
This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the?
Struts dispatcher needed for this tag. - [unknown location]
原因:struts2的過(guò)濾器映射路徑寫(xiě)錯(cuò)
解決方案:在web.xml中配置struts2的過(guò)濾器如下:
<filter-mapping>
? ? ? ? ? ? ? <filter-name>struts2</filter-name>
? ? ? ? ? ? ? <url-pattern>/*</url-pattern>
</filter-mapping>
注意:<url-pattern>這里一定要是 /*
?
問(wèn)題四:org.hibernate.util.JDBCExceptionReporterorg.hibernate.util.JDBCExceptionReporter.logExceptions
(JDBCExceptionReporter.java:101) - Unknown type '246 in column 2 of 6 in binary-encoded result set.
原因:用mysql數(shù)據(jù)庫(kù)時(shí),某些字段值使用類型decimal、bigint等
解決方案:用mysql數(shù)據(jù)庫(kù)時(shí),避免字段值用decimal、bigint等,否則用hibernate執(zhí)行hql語(yǔ)句時(shí)就會(huì)出現(xiàn)上面的異常
?
問(wèn)題五:經(jīng)過(guò)action跳轉(zhuǎn)后得到的頁(yè)面中css和js的樣式引入不能應(yīng)用
原因:經(jīng)過(guò)action跳轉(zhuǎn)后頁(yè)面的路徑改變了,不是你頁(yè)面存放路徑
解決方案:最好用絕對(duì)路徑來(lái)引入css和js,如引入css可用
<link href="${pageContext.request.contextPath}/css/css.css" rel="stylesheet" type="text/css" />
PS:也可使用項(xiàng)目名稱來(lái)作為絕對(duì)路徑,如項(xiàng)目名稱為OA,則上面引入也可如下:
<link href="/OA/css/css.css" rel="stylesheet" type="text/css" />
似乎更簡(jiǎn)介,但個(gè)人不推薦使用,因?yàn)橐坏┠愕捻?xiàng)目名更換后,所有頁(yè)面中的OA都要跟著替換,十分繁瑣。
?
問(wèn)題六:使用struts2的標(biāo)簽<s:textfield />時(shí),不能在一行顯示多個(gè)文本框(一個(gè)textfield占一行)
原因:初學(xué)struts2,在頭腦中一直在想一個(gè)問(wèn)題,就是對(duì)于struts2 ,當(dāng)應(yīng)用其自身的標(biāo)簽時(shí),例如:
<s:form>
? ?<s:textfield name="a"></s:textfield>
</s:form>
當(dāng)查看源代碼時(shí)為:
<form>
<table>
? ? <tr><td><input type="text" name=a/></td></tr>
</table>
</form>
自動(dòng)添加了table tr td 標(biāo)簽,所有不能一行顯示多個(gè)文本框。
解決方案:在struts2中加入了theme(主題)的概念,通過(guò)設(shè)置不同的主題,可以讓struts的代碼輸出不同的html代碼,你也就相應(yīng)得到不同的布局效果。
疑問(wèn)1、Struts2有哪些主題?
Struts2提供了三種主題,ajax, simple, xhtml,它默認(rèn)的是xhtml主題,當(dāng)然你可以寫(xiě)任意個(gè)你自己的主題,我們稱之為自定義主題
疑問(wèn)2、Struts2主題怎么改?
有兩種方法可以解決.
1.簡(jiǎn)單的方法(也很實(shí)用)
在Struts.xml中,加上下一行代碼就可以了
<constant name="struts.ui.theme" value="simple" />
代表所有的頁(yè)面采用的都是 simple主題了,這時(shí)它輸出的頁(yè)面,不回添加任何多余的代碼,比如 table tr td 等,我們就可以像其他編輯頁(yè)面的方式編輯頁(yè)面的風(fēng)格。
或者 在 <s:form 中添加 theme
<s:form theme="simple"></s:form>
struts2每個(gè)標(biāo)簽都有theme屬性
2.自定義 theme,還未研究》。。。。
問(wèn)題七
通過(guò)頁(yè)面表單提交一些要修改數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作,表單提交之后,程序運(yùn)行一切正常,而且,后臺(tái)也打印出了sql語(yǔ)句,例如:insert into SYS.HNCITEM05 (SNAME, BATE, SONO, SDATE, SNO) values (?, ?, ?, ?, ?),但是,數(shù)據(jù)庫(kù)中卻查不到剛才插入的數(shù)
據(jù)。就是說(shuō):數(shù)據(jù)并沒(méi)有真正寫(xiě)入數(shù)據(jù)庫(kù)。
?原因:hibernate配置錯(cuò)誤
?解決方案:Hibernate中設(shè)置事務(wù)自動(dòng)提交
即在Hibernate配置文件中進(jìn)行如下設(shè)置 :
?<property name="connection.autocommit">true</property>
?(<!-- 設(shè)置事務(wù)自動(dòng)提交(默認(rèn)為false,false的話,程序?qū)?shù)據(jù)庫(kù)的操作都不會(huì)作為事務(wù)提交) -->)
?一切就OK了。
?
問(wèn)題八
異常Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'userDao' must be of type [com.changetech.dao.impl.UserDaoImpl], but was actually of type [$Proxy16]
原因如下:
? ? ? ? ?@Resource(name="userDao")
? ? ? ? ?protected UserDaoImpl userDao;
? ? ? ? ?public void setUserDao(UserDaoImpl userDao) {
? ? ? ? ? ? ? ? ? ?this.userDao = userDao;
? ? ? ? ?}
原來(lái)在定義Dao時(shí),沒(méi)有用接口,而直接使用的是Dao的實(shí)現(xiàn)類
解決方案:改為如下:
? ? ? ? ?@Resource(name="userDao")
? ? ? ? ?protected UserDao userDao;
? ? ? ? ?public void setUserDao(IUserDao userDao) {
? ? ? ? ? ? ? ? ? ?this.userDao = userDao;
? ? ? ? ?}
問(wèn)題得到了解決
?
問(wèn)題九:更新時(shí)報(bào)錯(cuò) (The given object has a null identifier)
原因:對(duì)于自增字段的主鍵通常不能自動(dòng)將值傳遞到頁(yè)面,即在更新時(shí)缺少主鍵,需要手動(dòng)設(shè)置
解決方案:在頁(yè)面中加上下面這句即可:
<s:hidden name="book.bookId"></s:hidden>(不會(huì)在頁(yè)面顯示出來(lái),但值傳遞過(guò)來(lái)了)
?
問(wèn)題十:js實(shí)現(xiàn)圖片不能顯示時(shí)使用替換圖片顯示
解決方案:使用img標(biāo)簽的onerror屬性來(lái)處理默認(rèn)圖片,示例如下:
復(fù)制代碼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>替換示例</title>
</head>
<body>
<img id="img" src="001.jpg" οnerrοr="showerrimg(this);" >
<script language="JavaScript">
function showerrimg(obj){
? ? ?var errorimg = "error.jpg";//替換圖片地址
? ? ?obj.src = errorimg;
}
</script>
</body>
</html>
復(fù)制代碼
問(wèn)題十一:MyEclipse中修改項(xiàng)目名稱后,如何重新部署到 tomcat?
解決方案:首先修改工程名(直接按F2即可),然后選擇工程名--右鍵--Properties--MyEclipse--Web--把Web Context-root的名字改成新的項(xiàng)目名稱, 再把tomcat的工程刪除了,最后重新部署下即可。
問(wèn)題十二:在jsp頁(yè)面中用request方式向struts的action中傳遞不了中文參數(shù),例如下面代碼:
復(fù)制代碼
? ? <silver;mso-highlight:silver;mso-font-kerning:0pt;" > ?
? ? a href="findBooksByConditionAction.action?page=<s:property value="%{pageBean.currentPage+1}"/> ?
? ? &property=0pt;" ><%=session.getAttribute(0pt;" >"property")mso-font-kerning:0pt;" >%>&condition=mso-font-kerning:0pt;" > ?
? ? <%=session.getAttribute(mso-font-kerning:0pt;" >"condition")color:#BF5F3F;mso-font-kerning:0pt;" >%> ?
? ? &category=0pt;" ?><%=session.getAttribute(0pt;" ?>"category")mso-font-kerning:0pt;" ?>%>&subCategory=mso-font-kerning:0pt;" ?> ?
? ? <%=session.getAttribute(mso-font-kerning:0pt;" ?>"subCategory")color:#BF5F3F;mso-font-kerning:0pt;" ?>%>0pt;" ?>" ? ? ?
? ? class="right-font08">下一頁(yè)</background:silver;mso-highlight:silver;mso-font-kerning:0pt;" ?>amso-font-kerning:0pt;" ?>> ?
復(fù)制代碼
這樣傳遞過(guò)去的中文是亂碼
解決方案:放在input文本域里面?zhèn)鬟f過(guò)去,即
? ? <input type="hidden" name="condition" value="<%=session.getAttribute("condition")%>"/> ?
? ? <input type="hidden" name="category" value="<%=session.getAttribute("category")%>"/> ?
? ? <input type="hidden" name="subCategory" value="<%=session.getAttribute("subCategory")%>"/> ?
? ? <input type="hidden" name="property" value="<%=session.getAttribute("property")%>"/> ?
然后直接
<a href="findBooksByConditionAction.action?page=<s:property value="%{pageBean.currentPage+1}"/>"class="right-font08">下一頁(yè)</a>
但發(fā)現(xiàn)值竟然沒(méi)有傳過(guò)去(空指針報(bào)錯(cuò)),經(jīng)問(wèn)同事后知道,要想input里的值傳過(guò)去必須提交表單才可,僅采用這種超鏈接方式進(jìn)行跳轉(zhuǎn)的值是傳不過(guò)去的,于是將超鏈接換為
<a href="javascript:queryByConn('<s:property value="%{pageBean.currentPage+1}"/>');" class="right-font08">下一頁(yè)</a>
js中相應(yīng)加上該函數(shù)的實(shí)現(xiàn):
復(fù)制代碼
? ? function queryByConn(page) { ?
? ? ??
? ? document.bookForm.action="findBooksByConditionAction.action?page="+page; ?
? ? ??
? ? ? ? document.bookForm.submit(); ?
? ? ??
? ? } ?
復(fù)制代碼
在js中將表單提交即可,這樣亂碼問(wèn)題就解決了。
?
問(wèn)題十三:hibernate中出現(xiàn)異常
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
原因:hibernate配置中 many-to-one的默認(rèn)選項(xiàng)是 lazy = "proxy"
解決方法:<many-to-one> ?及 <set> 中設(shè)置 lazy="false"即可
?
問(wèn)題十四:如何建立svn服務(wù)器
解決方案:首先當(dāng)然要安裝客戶端svn(小烏龜TortoiseSVN )和服務(wù)器端svn(Subversion),然后在命令行下輸入以下命令:
1、 ?svnadmin oa(oa是存放各個(gè)版本信息的文件夾名稱,自定義)
2、 ?svnserve ?–d –r oa(打開(kāi)svn服務(wù)器)
?
PS:可能遇到的問(wèn)題:authorized failed(權(quán)限認(rèn)證失敗)
解決方案:在oa目錄下找到passwd文件,在里面加上幾個(gè)用戶
用戶名=密碼(自己定義用戶名和密碼)
并將svnserve.conf里的password-db = passwd這句前面的#去掉即可(前面不能留有空格)
========
三大框架常見(jiàn)錯(cuò)
http://blog.csdn.net/mr_li13/article/details/49447207Unable to load configuration. - [unknown location]
? ? at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
? ? at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
? ? at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
? ? at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
? ? at?
解決問(wèn)題步驟:
第一,看看是否導(dǎo)入Junit4這個(gè)單元測(cè)試包沒(méi),沒(méi)有導(dǎo)入再運(yùn)行。否則進(jìn)入第二步
第二,jar包沖突,檢查項(xiàng)目中的jar包是否同時(shí)有?
xerce.jar和xml-apis.jar這兩個(gè)jar包,有的話刪除xerce.jar?
第三,缺了包,檢查struts.xml中是否有配置
有的話看看項(xiàng)目中是否有引入struts2-spring-plugin-2.1.6.jar,沒(méi)有的話引入即可
第二個(gè):Line: 177 - java/net/PlainSocketImpl.java:177:-1
這個(gè)問(wèn)題只要你機(jī)子聯(lián)網(wǎng)就可以跑起來(lái),但是你一沒(méi)網(wǎng)就報(bào)錯(cuò)了..具體如下:
2010-1-24 21:51:42 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:struts2' did not find a matching property.
2010-1-24 21:51:42 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the Java.library.path: F:\jdk.1.6\Java\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:
\WINDOWS;F:/jdk.1.6/Java/bin/../jre/bin/client;F:/jdk.1.6/Java/bin/../jre/bin;F:\jdk.1.6\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Common?
Files\Thunder Network\KanKan\Codecs;C:\Program Files\StormII\Codec;C:\Program Files\StormII
2010-1-24 21:51:43 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2010-1-24 21:51:43 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 2063 ms
2010-1-24 21:51:43 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2010-1-24 21:51:43 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.16
2010-1-24 21:51:45 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
信息: Parsing configuration file [struts-default.xml]
2010-1-24 21:51:45 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider register
信息: Parsing configuration file [struts-plugin.xml]
2010-1-24 21:51:45 org.apache.catalina.core.StandardContext filterStart
嚴(yán)重: Exception starting filter struts2
Class: java.NET.PlainSocketImpl
File: PlainSocketImpl.java
Method: connect
Line: 177 - java/net/PlainSocketImpl.java:177:-1
?at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:835)
?at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:131)
?at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:100)
?at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:130)
?at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
?at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
?at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
?at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
?at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
?at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
?at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
?at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
?at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356)
?at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
?at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
?at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
?at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
?at org.apache.catalina.core.StandardService.start(StandardService.java:516)
?at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
?at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
?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:597)
?at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
?at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: struts.apache.org - Class: java.Net.PlainSocketImpl
File: PlainSocketImpl.java
Method: connect
Line: 177 - java/net/PlainSocketImpl.java:177:-1
?at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:123)
?at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:830)
?... 25 more
解決辦法:解決不聯(lián)網(wǎng)無(wú)法啟動(dòng)struts2問(wèn)題
*將struts.xml中的聲明部分
<!DOCTYPE struts PUBLIC
? ? "-//Apache Software Foundation//DTD StrutsConfiguration 2.1//EN"
? ? "http://struts.apache.org/dtds/struts-2.1.dtd">
替換為 在struts2-core-2.xxx.jar包中struts-default.xml的文件聲明
<!DOCTYPE struts PUBLIC
? ? "-//Apache Software Foundation//DTD StrutsConfiguration 2.0//EN"
? ? "http://struts.apache.org/dtds/struts-2.0.dtd">
****說(shuō)白了也就是說(shuō)要保持一致!!
========
整合三大框架出現(xiàn)的一些常見(jiàn)的問(wèn)題及解決的方案
http://blog.csdn.net/u012814005/article/details/42234649①、今天在整合三大框架的時(shí)候,出現(xiàn)了兩個(gè)異常,在網(wǎng)上看了很多的文章。所有的文章都指向hibernate的問(wèn)題,于是我就從這幾方面去排查,一:hibernatejar包,二:hibernate配置文件,三:hibernate的實(shí)體映射文件(我用的是注解的方式來(lái)的)。經(jīng)過(guò)一一排查
后發(fā)現(xiàn),我把id的類型寫(xiě)成了string的類型。
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.Java:80)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91)
at org.hibernate.loader.Loader.getResultSet(Loader.java:2065)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
Caused by: com.MySQL.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mydb.tbl_employee' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
②、在做刪除功能時(shí),發(fā)現(xiàn)數(shù)據(jù)庫(kù)已經(jīng)刪除了數(shù)據(jù),但是跳轉(zhuǎn)的時(shí)候卻出現(xiàn)404的異常。經(jīng)過(guò)檢查,發(fā)現(xiàn)在sturts.xml配置文件中<result name="listAllEmps">/employee!listAllEmps.action</result>,因?yàn)閞esult的type屬性默認(rèn)的值是dipatcher,而我需要是重定向到
這個(gè)action下,所以添加了
type="redirect"就可以了
======== 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的Java web 三大框架异常学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Windbg dump分析 学习总结
- 下一篇: C# List 嵌套学习总结