奇怪的问题:Struts2的There is no Action mapped for action name ...

qqliang1314 2012-10-05 08:23:00
是在更新页面提交的时候报的错,有点长,希望能耐心看完

错误提示如下:
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我试过了,没问题
...全文
256 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
丨深水蓝丨 2012-10-07
  • 打赏
  • 举报
回复
楼主这里有问题@Controller("companyAction")
改成@Controller("company")再试下
qqliang1314 2012-10-06
  • 打赏
  • 举报
回复
红色字体标注的就是,由spring来管理companyAction
JavaMan 2012-10-06
  • 打赏
  • 举报
回复
{1}Action
CompanyAction 还是companyAction是不是Action的类名有错误!
tanglingmin 2012-10-06
  • 打赏
  • 举报
回复
在system前面加上<%=path%>/试试看;对了我怎么没有找到conpany对应action的映射啊?
qqliang1314 2012-10-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

form表单加上namespace="/system"试试
[/Quote]

试过了,还是不行,原来的更新页面里也包含着namespace呢
qqliang1314 2012-10-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你的CompanyAction里面没有update方法
[/Quote]

CompanyAction继承PartyAction,PartyAction里有update方法
  • 打赏
  • 举报
回复
form表单加上namespace="/system"试试
gitlee 2012-10-05
  • 打赏
  • 举报
回复
你的CompanyAction里面没有update方法

67,511

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧