?
http://blog.csdn.net/carefree31441/article/details/4857546
?
使用 Struts2,配置一切正常,使用常用tag也正常,但是在使用<s:form>標(biāo)記時(shí),發(fā)現(xiàn)控制臺(tái)總是輸出警告信息,?
警告信息內(nèi)容如下:?
警告:?
No?
configuration?
found?
for?
the?
specified?
action: 'ShowMessage' in namespace: ''. Form?
action?defaulting to '
action' attribute's literal value.?
2008-9-6 11:35:47 org.apache.
struts2.components.Form evaluateExtraParamsServletRequest?
警告:?
No?
configuration?
found?
for?
the?
specified?
action: 'ShowMessage' in namespace: ''. Form?
action?defaulting to '
action' attribute's literal value.?
showmsg.jsp代碼如下?
<%@ taglib prefix="s" uri="/struts-tags" %>?
......?
<div>?
hello world?
<s:form name="ShowMessage" method="post"?
action="/hello/ShowMessage.
action" >?
<s:textfield label="user name" name="username"></s:textfield>?
<s:submit></s:submit>?
</s:form>?
</div>?
......?
struts.xml配置如下:?
......?
<struts>?
<package name="hello" extends="struts-default" namespace="/hello">?
<
action?name="ShowMessage" class="com.historycreator.strutstest.ShowMessage">?
<result>/digg/showmsg.jsp</result>?
</
action>?
</package>?
</struts>?
打開showmsg.jsp頁(yè)面時(shí),就出現(xiàn)上述異常。嘗試了各種配置和訪問(wèn)方法,均出現(xiàn)警告。搜索網(wǎng)絡(luò)給出的答案幾乎都說(shuō)把<s:form name="ShowMessage" method="post"?
action="/hello/ShowMessage.
action" >中的.
action去掉就可以解決了,做了測(cè)試,問(wèn)題仍然沒(méi)有解決。更有人讓把<s:去掉,不用tag,直接寫<form>這個(gè)當(dāng)然不會(huì)有問(wèn)題,但是一會(huì)用標(biāo)記,一會(huì)不用,很雜亂,并且不是解決問(wèn)題的根本之道。?
解決方法:?
經(jīng)過(guò)測(cè)試發(fā)現(xiàn),是沒(méi)有正確使用tag的原因,這種情況下,正確的寫法應(yīng)該是,<s:form name="ShowMessage" method="post"?
action="ShowMessage" namespace="/hello" >?
原因分析:?
因?yàn)殚_始使用的
struts2標(biāo)簽(form)并未指定namespace屬性。所以
struts2會(huì)默認(rèn)從根命名空間"/" 搜索
action'/hello/ShowMessage.
action',如搜索不到則進(jìn)入默認(rèn)命名空間''搜索
action串,在默認(rèn)命名空間中是肯定找不到自己定義的
action的,所以,
struts2拋出一個(gè)警告信息。?
現(xiàn)在我們指定了namespace為/hello,則
struts2會(huì)直接在/hello命名空間尋找。可以想象,如果在這么命名空間里找不到請(qǐng)求的
action,也會(huì)拋出一條類似的信息。?
注意,<s:form name="ShowMessage" method="post"?
action="ShowMessage" namespace="/hello" >?
不能寫成<s:form name="ShowMessage" method="post"?
action="ShowMessage.
action" namespace="/hello" >?
這樣仍然有對(duì)應(yīng)的警告信息,并且提交后出現(xiàn)無(wú)法訪問(wèn)的結(jié)果。因?yàn)闆](méi)有ShowMessage.
action這樣一個(gè)
action,這個(gè).
action不能由我們手工添加,
Struts2會(huì)自動(dòng)為你完成這個(gè)工作,并且手工添加是不行的,就不必多此一舉了。但是在其他的場(chǎng)合,比如使用超級(jí)鏈結(jié),則可以加上這個(gè).
action。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

