<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="userForm" type="com.yourcompany.struts.form.UserForm" />  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="userForm"
      input="/form/user.jsp"
      name="userForm"
      path="/user"
      scope="request"
      type="com.yourcompany.struts.action.UserAction">
      <forward name="succes" path="/succes.jsp" />
      <set-property property="cancellable" value="true" />
    </action>  </action-mappings>  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
就是这一行:   type="com.yourcompany.struts.action.UserAction">每建一个项目这里都会报错:
用的是Tomcat 6.x
错误信息是:严重: Parse Error at line 23 column 14: The content of element type "action" must match "(icon?,display-name?,description?,set-property*,exception*,forward*)".
org.xml.sax.SAXParseException: The content of element type "action" must match "(icon?,display-name?,description?,set-property*,exception*,forward*)".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.apache.commons.digester.Digester.parse(Digester.java:1572)
at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:738)
at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:687)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:333)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4045)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1105)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1203)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
但是这个项目还是可以访问的!!!

解决方案 »

  1.   

    你的xml文件是不是直接拷贝,不是从MyEclipse导入struts生成的?
    如果这样导入生成一下试试。
      

  2.   

    <forward name="succes" path="/succes.jsp" />
    <set-property property="cancellable" value="true" />
    顺序颠倒了吧!
    改成这样试试吧!
    <set-property property="cancellable" value="true" />
    <forward name="succes" path="/succes.jsp" />
      

  3.   

    我想问下 <set-property property="cancellable" value="true" />
    有什么用,因为我一般都是把这个熟悉删除的
      

  4.   

    这个好像是那个<html:cancellable>键的吧
      

  5.   


    cancellable是取消吧
    8.5有很多东西不太稳定,建议用稳定版本的。
      

  6.   

    <forward name="succes" path="/succes.jsp" />
    <set-property property="cancellable" value="true" />
    顺序颠倒了吧!
    改成这样试试吧!
    <set-property property="cancellable" value="true" />
    <forward name="succes" path="/succes.jsp" />
    正解
      

  7.   

    用Myeclipse8.5这个版本,估计卡的要死,楼主绝对是个慢性子
      

  8.   

    用设计的,不用写代码的配置。用struts2.1就用写代码的
      

  9.   

    好像是违反他的DTD规定,必须按照它规定的顺序来
      

  10.   

    都8.5了
    struts何必再用1.X呢。
    建议struts2吧。容易,简单,好学啊。
      

  11.   

    用都可能自动生成的,,struts,hibernater,spring
      

  12.   

    因为xml里对其属性的顺序有限制了。