2011-03-02 104 views
4

我寫了一個帶有登錄頁面和註冊頁面的小型struts應用程序 如果我登錄,我會得到一個成功頁面。註冊時,我會檢查密碼和確認密碼的Fileds如果他們匹配我得到一個成功頁面別人失敗頁面。元素類型「struts-config」的內容必須匹配「(datasource?,form-b​​eans?

我沒有使用任何數據庫。我寫了所需要的表單bean,那些動作類。

struts-config.xml它在<struts-config>標記處顯示錯誤:

「元素類型的內容‘的struts-config’必須匹配 「(數據源?,形式豆?,全球前鋒?,動作映射?)」

如何解決這個問題呢?我使用Eclipse作爲我的IDE。

回答

1

您的struts-config.xml文件無效。

Struts-config.xml是一個XML文件,因此可以通過DTDXML-Schema進行驗證。

您在Eclipse中看到的錯誤是struts-config.xml文件針對其DTD進行驗證並且驗證失敗的結果。最有可能的是它期望您的代碼按照特定的順序,並且您沒有以這種方式編寫代碼,您添加了未在DTD中指定的代碼,您拼錯了某些代碼等。

看看struts-config DTD,然後在你的struts-config.xml文件中查看它們的不同之處。

P.S.有更多版本的DTD,所以請確保你正在尋找正確的。

http://struts.apache.org/dtds/struts-config_1_0.dtd
http://struts.apache.org/dtds/struts-config_1_1.dtd
http://struts.apache.org/dtds/struts-config_1_2.dtd
http://struts.apache.org/dtds/struts-config_1_3.dtd
http://struts.apache.org/dtds/struts-config_1_4.dtd

2

是的,struts-config.xml根據模式是無效的,但隨着應用工作,這只是一個驗證問題。要在擴大爲什麼它是在子元素的順序上下文無效 - 如果驗證器告訴你......

元素類型「的struts-config」的內容必須匹配 「(????數據源,形豆,全球轉發,動作映射「)

...那麼這意味着,例如(減少爲了簡潔的例子):

<struts-config> 
    <datasource>...</datasource> 
    <form-beans>...</form-beans> 
    <global-forwards>...</global-forwards> 
    <action-mapping>...</action-mapping> 
</struts-config> 

...是模式的有效實現,而例如...

<struts-config> 
    <datasource>...</datasource> 
    <global-forwards>...</global-forwards> 
    <form-beans>...</form-beans> 
    <action-mapping>...</action-mapping> 
</struts-config> 

...不是。順便說一下,這是因爲Struts 1.0 DTD in question說...

<!ELEMENT struts-config (data-sources?,form-beans?,global-forwards?,action-mappings?)> 

......並由此要求子元素的某種順序。這是不是該DTD作者做不經意,但由於事實:

聲明在DTD發生限制無序列表將 往往導致很長的或複雜的看着聲明。 1

-1

元素的順序問題。例如 <form-beans></form-beans>元件 必須在 <global-forwards></global-forwards>元件等

相關問題