是在更新页面提交的时候报的错,有点长,希望能耐心看完 错误提示如下:
   There is no Action mapped for action name company. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:662)
struts.xml配置:
    <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
       <package name="system" namespace="/system" extends="common" >
     
 <include file="common.xml"></include> 
 <action name="*" class="{1}Action">
<result name="index">/org/index.jsp</result>
<result name="add_input">/org/{1}_add_input.jsp</result>
<result name="update_input">/org/{1}_update_input.jsp</result>
<result name="add_success">/org/{1}_add_success.jsp</result>
<result name="update_success">/org/{1}_update_success.jsp</result>
<result name="del_success">/org/{1}_del_success.jsp</result>
     </action>
 </package>
   
</struts>
common.xml的配置:
   <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<constant name="struts.configuration.xml.reload" value="true"></constant>
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<constant name="struts.devMode" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 

<package name="common" extends="struts-default" abstract="true">
<interceptors>

            <interceptor-stack name="oa-stack">
                <interceptor-ref name="exception"/>
              
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven">
                 <param name="refreshModelBeforeResult">true</param>
                </interceptor-ref>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*,^struts\..*,pager\.offset</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
            </interceptor-stack>
</interceptors>
<default-interceptor-ref name="oa-stack"></default-interceptor-ref>
<global-results>
<result name="error">/common/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"/>
</global-exception-mappings>
</package>
</struts>company_update_input.jsp的form表头部分代码:
   <form action="system/company!update.action" method="post" >
<!-- <input type="hidden" name="method:update" value=""> -->action部分我用的是spring注入的;
    package com.oa.web.action;import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;import com.oa.model.Company;@Controller("companyAction")
@Scope("prototype")
public class CompanyAction extends PartyAction 
{ @Override
public Object getModel() {
if(model == null){
model = new Company();

}
return model;
}
    
}主要的partyAction主要代码如下,都贴上来的话太长了:
    @Controller("partyAction")
@Scope("prototype")
public class PartyAction implements ModelDriven<Object>{
   protected Party model;
  
public Object getModel() {
if(model == null){
model = new Party();

}
return model;
}
@Resource
private PartyService partyService;
    //执行更新操作
      public String update(){
        partyService.updateParty(model); 
       return "update_success";
      }  就是表单提交的时候无法识别company.action,party.action我试过了,没问题

解决方案 »

  1.   

    你的CompanyAction里面没有update方法
      

  2.   

    form表单加上namespace="/system"试试
      

  3.   


    CompanyAction继承PartyAction,PartyAction里有update方法
      

  4.   


    试过了,还是不行,原来的更新页面里也包含着namespace呢
      

  5.   

    在system前面加上<%=path%>/试试看;对了我怎么没有找到conpany对应action的映射啊?
      

  6.   

    {1}Action   
    CompanyAction  还是companyAction是不是Action的类名有错误!
      

  7.   

       红色字体标注的就是,由spring来管理companyAction
      

  8.   

    楼主这里有问题@Controller("companyAction")
    改成@Controller("company")再试下