4

我编写了一个带有登录页面和注册页面的小型 struts 应用程序。如果我登录,我会得到一个成功页面。如果我注册,我会检查密码并确认密码文件是否匹配我会得到一个成功页面,否则会失败页面。

我没有使用任何数据库。我写了所需的Form Beans,那些Action Classes。

其中在标签struts-config.xml处显示错误:<struts-config>

“元素类型“struts-config”的内容必须匹配“(datasource?,form-b​​eans?,global-forwards?,action-mapping?)”

如何解决这个问题?我使用 Eclipse 作为我的 IDE。

4

4 回答 4

2

是的,struts-config.xml根据架构是无效的,但是当应用程序正在运行时,这只是一个验证问题。扩展为什么在子元素顺序的上下文中无效- 如果验证器告诉你......

元素类型“struts-config”的内容必须匹配“(datasource?,form-b​​eans?,global-forwards?,action-mapping?")

...那么这意味着例如(为简洁起见,减少示例):

<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说...

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

...因此需要一定顺序的子元素。这不是 DTD 作者无意中所做的事情,而是由于以下事实:

在 DTD 中声明带有出现约束的无序列表通常会导致看起来很长或看起来很复杂的声明。1

于 2015-07-29T11:05:37.900 回答
1

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

Struts-config.xml 是一个 XML 文件,因此可以根据DTDXML-Schema进行验证。

您在 Eclipse 中看到的错误是根据其 DTD 验证 struts-config.xml 文件并且验证失败的结果。很可能它希望您的标签按特定顺序排列,而您没有那样编写它们,您添加了 DTD 中未指定的标签,您拼错了一些标签等。

查看 struts-config DTD,然后查看 struts-config.xml 文件以了解它们的不同之处。

PS 还有更多版本的 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

于 2011-03-03T20:54:24.740 回答
0

我正在使用struts-config_1_3.dtd. struts-config.xml当我添加<global-forwards>标签时,我也遇到了同样的错误struts-config.xml

(“元素类型“struts-config”的内容必须匹配“(datasource?,form-b​​eans?,global-forwards?,action-mapping?)”)

我在<global-forwards>标签后添加了<action-mapping>标签,因为它抛出了错误。正如错误描述所说,标签的顺序应该是

<datasource></datasource>

<form-beans></form-beans>

<global-forwards></global-forwards>

<action-mapping></action-mapping>

所以我改变了我<global-forwards>以前<action-mapping>的。它对我有用。

希望这些信息对某人有所帮助。

于 2020-04-11T17:44:07.390 回答
0

元素的顺序很重要。例如 <form-beans></form-beans>元素必须在 <global-forwards></global-forwards>元素之前等。

于 2015-12-15T10:09:00.627 回答