Java 在Struts 2.5.14中,我无法添加新操作,我唯一可以添加的操作是在Struts.xml的每个包中添加hello

Java 在Struts 2.5.14中,我无法添加新操作,我唯一可以添加的操作是在Struts.xml的每个包中添加hello,java,struts2,tiles2,Java,Struts2,Tiles2,下面是struts.xml的内容,我也在使用tiles,添加名为hello以外的操作不起作用。使用tomcat 7.0.88和java 8 。\view\contracts不起作用 。\home\hello正在工作 。\view\hello正在工作** struts.xml: <struts> <package name="home" namespace="/home" extends="struts-default"> <result-types&

下面是struts.xml的内容,我也在使用tiles,添加名为hello以外的操作不起作用。使用tomcat 7.0.88和java 8

  • 。\view\contracts
    不起作用
  • 。\home\hello
    正在工作
  • 。\view\hello
    正在工作**
struts.xml:

<struts>
  <package name="home" namespace="/home" extends="struts-default">
    <result-types>
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
    </result-types>

    <action name="hello" class="action.HelloWorldAction" method="execute">
      <result type="tiles">menu</result>
    </action>
    <action name="contracts" class="action.ViewContractsAction" method="contracts">
      <result type="tiles">hello</result>
    </action>
  </package>

  <package name="view" namespace="/view" extends="struts-default">
    <result-types>
      <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
    </result-types>
    <action name="hello" class="action.ViewContractsAction" method="execute">
      <result type="tiles">contracts</result>
    </action>
    <action name="contracts" class="action.ViewContractsAction" method="contracts">
      <result type="tiles">contracts</result>
    </action>
  </package>
</struts>
    There is no Action mapped for action name contracts. - [unknown location]
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:195)        org.apache.struts2.factory.StrutsActionProxy.prepare(StrutsActionProxy.java:57)        org.apache.struts2.factory.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:32)        com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:60)org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564)
org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
        org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
        org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
        org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
        org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Pro

我找到了解决办法。 只需从struts.xml中删除默认包 删除主包和hello action struts.xml


我尝试还原这些更改,以查看问题是否仍然是由于此原因造成的,我再次发现相同的错误,即上面的更改就是解决方案。

我从struts.xml中的两个包中删除了hello操作仍然..\home\hello..\home\hello正在工作您试图点击的特定URL是什么?浏览器认为你想点击什么?例如,向我们显示您在URL栏中键入的URL。非常感谢Dave的回复,问题已经解决。