2011-03-02 99 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>元件等

相关问题