精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
徹底解決 警告: No configuration found for the speci...
userphoto

2011.11.04

關注

最近學習struts2 中時候控制臺老是出現該警告錯誤。

我的客戶端代碼如下 (代碼1):

 

 

Html代碼  
  1. <s:form action="/admin/login" method="post">  
  2.  <s:textfield name="username" id="usenrame" label="用戶名" />  
  3.  <s:password name="password" id="password" label="密碼" />   
  4.  <s:submit type="input" value="登錄" id="btnsubmit" cssClass="btnsubmit"></s:submit>   
  5. </s:form>  

 

 

struts.xml中的配置代碼如下 (代碼2):

Xml代碼  
  1. <package name="admin" namespace="/admin" extends="struts-default">  
  2.  <action name="login" class="com.longweir.struts2.action.LoginAction">   
  3.    <result name="success">/actionResult.jsp</result>   
  4.    <result name="login" type="redirect">/admin/login.jsp</result>      
  5.    <result name="input">/admin/login.jsp</result>  
  6.  </action>  
  7.  </package>  

 

 

在網上搜索了下,搜索網絡給出的答案幾乎都說把<s:form  action="/admin/login method="post"  >中的login后加上.action后綴了,做了測試,問題仍然沒有解決。

 

通過我觀察發現有兩個地方需要修改,首先<s: form>表單中需要加入命名空間參數namespace,和struts.xml中配置一致。其次,<s:form action=xxx> 中直接寫action映射的名字,比如我的xml中是login,則這里直接寫login即可,不需要畫蛇添足加上.action后綴或者其他的前置路路徑,所以修改后的客戶端文件配置為 代碼(3):

 

Html代碼  
  1. <s:form action="login" method="post" namespace="/admin">   
  2. <s:textfield name="username" id="usenrame" label="用戶名" />   
  3. <s:password name="password" id="password" label="密碼" /> <s:submit type="input" value="登錄" id="btnsubmit"   
  4. cssClass="btnsubmit">  
  5. </s:submit>   
  6. </s:form>  

 

 
當然,如果你不是使用的struts2的標簽,而是使用的傳統的html代碼,則表單的action屬性必須加上完整的路徑和后綴

也就是說,必須改成如下代碼:

<form name="form" method="post" action="/admin/login.action">

 

你如上指定后,當瀏覽器給出如上的請求/admin/login.action ,struts2框架將首先在sturts.xml中查找 /admin 名稱空間,如果找到了(比如我這里顯然有這個名稱空間),則執行login.action,如果沒有找到,會到默認的名稱空間中查找,如果默認的也沒有,則提示錯誤,沒有映射該action.

 

分析下我出現的錯誤,在我的原始的代碼 (代碼1)中因為沒有指定namespace,那么框架認為輸出表單的請求和提交表單的請求都是在一個名稱空間中,即使在/admin名稱空間中,此事雖然可以找到,可以運行,但是會提示這個警告.

 

 

如果在你的struts.xml文件中指定了名稱空間,那么,如果在客戶端使用struts2的標簽,則要同樣指定名稱空間,但action= 這后面,直接寫action名即可,不需要加上名稱空間的前綴在前面。

因為,struts2框架會根據你所指定的名稱空間以及你系統當前應用所映射的路徑,構造一個完整的請求路徑。比如如上正確的 代碼3的 struts2代碼,在瀏覽器中查看源碼,解析的結果是:

 

Html代碼  
  1. <form id="login" name="/admin" action="/guestbook/admin/login.action" method="post">   
  2. <table class="wwFormTable">  
  3.  <tr>   
  4.     <td class="tdLabel">  
  5.     <label for="usenrame" class="label">用戶名:</label> </td>   
  6.     <td><input type="text" name="username" value="" id="usenrame"/></td>   
  7.    </tr>  
  8.    <tr>  
  9.     <td class="tdLabel"><label for="password" class="label">密碼:</label></td>   
  10.    <td><input type="password" name="password" id="password"/></td>  
  11.  </tr>   
  12.   <tr> <td colspan="2"><div align="right"><input type="submit" id="btnsubmit" value="&#30331;&#24405;" class="btnsubmit"/> </div></td>   
  13.    </tr>   
  14. </table>  
  15. </form>   

 

 

可以看到,輸出的action 請求地址非常正確,自動加入了當前應用的名稱和根據namespace所整理成的完整的請求路徑:"/guestbook/admin/login.action

 

但是,假如我們人為的在action后面加上 action="/admin/login" ,雖然你指定了namespace="/admin" ,那struts2框架不會給你加上.action的后綴(可以查看輸出的html源碼中是沒有.action這個后綴的),最后還是會出現標題中所提示的警告,雖然還是可以正常工作.

 

所以,我個人總結為如下:

1. 如果你的xml配置文件中設置了namespace ,建議你的終端的struts2表單標簽中也設置一樣的namespace

2. 如果已經按照1中的設置,那么 action = 后面直接寫action名字即可,不需要加后綴(默認就會加上,xml中也一樣)

3. 以上僅是針對使用struts2標簽的情況下,如果你沒用struts2 的標簽而是使用的原始HTML標簽,則action=后面必須是完整的路徑地址: /應用名/名稱空間/xxx.action  (action 后綴要有),因為很顯然,struts2不會給你自動加上那些信息。


顯然這個錯誤是在使用struts標簽時產生的,
原因是沒有在struts.xml中配置action或在form標簽中使用了匿名的namespace所致

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
標簽package中的namspace的用法
Struts2的配置文件——struts.xml
struts demo Struts1.3
Struts2配置詳解
struts2 返回類型
struts2.x環境配置步驟
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 鄂伦春自治旗| 乌鲁木齐县| 全南县| 固阳县| 永川市| 阜新| 金塔县| 五寨县| 松原市| 平邑县| 德安县| 芦溪县| 昌宁县| 涞源县| 东兴市| 泗阳县| 普安县| 秦安县| 铜鼓县| 望江县| 株洲市| 西峡县| 平谷区| 古蔺县| 尚志市| 霍州市| 凌云县| 彰化县| 肥城市| 昌都县| 交城县| 湘阴县| 松江区| 民勤县| 和田市| 兴城市| 怀集县| 城固县| 永登县| 肇州县| 长乐市|