我做了两个JSP页面,一个中文一个英文,页面基本一致(除了命名),使用同一个ACTION,中文的可以执行,但是英文的却提示找不到ACTION,请问大侠可能会是什么问题。我在线,需要什么代码可以实时提供!

解决方案 »

  1.   

    什么框架? Struts还是Webwork?
      

  2.   

    错误信息:
    严重: Could not find action or result
    No result defined for action com.action.BookAction and result input - action - file:/E:/dk/work/sskl/WebRoot/WEB-INF/classes/struts.xml:681:85
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:350)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.ActionDrivenInterceptor.intercept(ActionDrivenInterceptor.java:34)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
      

  3.   

    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    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:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    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:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  4.   

    页面基本一致(除了命名)
    是什么命名 jsp的名字?還是里面function的名字?還是什么?
    我猜猜看
    會不會是配置文件的名字不對?
      

  5.   

    哈 我是用JSF的 没用过Struts 不过貌似都差不多 把不同的代码帖出来瞧瞧
      

  6.   

    JSP页面提取ACTION代码:
    <form name="bookSave" action="saveBookOut.action" method="post" onsubmit="return checkBook();">STRUTS.XML中的ACTION:
    <action name="saveBookOut" class="com.action.BookAction"
    method="saveBookOut">
    <result name="success">/page/saveBookSuccess.jsp</result>
    <result name="successen">/page/saveEnbookSuccess.jsp</result>
    <result name="successko">/page/saveKobookSuccess.jsp</result>
    </action>
      

  7.   

    你的form表单的action指向与英文的jsp相同吗?类似这样的:
    <form  .....action="<%=path %>/subscribe.do" method="post">
      

  8.   

    哦~ Struts 原来是这样的啊action也要定义 还是和JSF不太一样 result里放的是要跳转到的页面么?是不是和JSF的导航差不多啊 有可能是找不到你对应的result 
    <result   name="successen"> /page/saveEnbookSuccess.jsp </result> 
    这句吧?确认那个页面存在?或者说去那个页面的导航存在?
      

  9.   

    你的STRUTS.XML里面怎么没有定义path?感觉你的写法跟我的不一样。你看这样试试
    <action   path="saveBookOut"   type="com.action.BookAction" >
    <forward   name="success" path="/page/saveBookSuccess.jsp"  />
    <forward   name="successen" path="/page/saveEnbookSuccess.jsp"  />
    <forward   name="successko" path="/page/saveKobookSuccess.jsp" /> 
    </action><%
    String path = request.getContextPath();
    %>
    <form   name="bookSave"   action="<%=path   %>/saveBookOut.do"   method="post"   onsubmit="return   checkBook();"> 
      

  10.   

    存在而且一致。
    我在bookAction里面放了一句打印命令public String saveBookOut() throws Exception {
    System.out.println("asdfsadfsadfsadfasdf");。
    中文页面就可以打印出来,可是英文的就不行,可就是不知道为什么跳不进来
      

  11.   

    确认是action根本没执行???还是执行出错了?在开头设个断点试试 看看停不停
    报错上不是说了么
    严重:   Could   not   find   action   or   result 
    No   result   defined   for   action   com.action.BookAction   and   result   input   -   action  不一定就是找不到action 也有可能是 result有问题 确认你的result没问题?
      

  12.   

    虽然没用过Struts 但看样子和JSF的导航差不多 你的意思是根据不同的结果最后到达不同的页面吧?确认你英文的result对应的设置没有问题?
      

  13.   

    对,是根据Loclae信息进行的选择。
    呵呵,我真的可以确认没有问题:)
      

  14.   

    ......但我看报错里的
    No   result   defined   for   action   com.action.BookAction   and   result   input   -   action 
    这句怎么好像是在说action里的result有问题呢......
    Struts 我不懂 直觉告诉我的 @_@
      

  15.   

    看报错的字面意思是说action里的result没有定义 @_@
      

  16.   

    恩,我也觉得是这块儿的问题,可是命名的确没有错
    如果我在result中加入INPUT结果,倒是不会报错了。可是问题就在于,为什么会跳到INPUT结果中。应该是到SUCCESSEN才对
      

  17.   

    之前的
    <result   name="success"> /page/saveBookSuccess.jsp </result>
    这句是中文的么?没问题?<result   name="successko"> /page/saveKobookSuccess.jsp </result>
    这句难道是韩文?这个试没试?好用么?
      

  18.   

    可能是没定义名字为input的result
    验证不通过或是什么原因一般都会跳回到input对应的资源上去
      

  19.   

    问题就是为什么会验证不通过,可能什么地方的原因?因为我在英文页面下连ACTION都找不到
      

  20.   

    ACTION都找不到???.......
    不会是页面没写ACTION吧 @_@......
    查看页面源代码里没有么?
      

  21.   

    JSP页面提取ACTION代码:
    <form   name="bookSave"   action="saveBookOut.action"   method="post"   onsubmit="return   checkBook();">已经写了,可是找不到
      

  22.   

    鼠标右键点击页面 选查看源代码 找到form那里看看 中文的和英文的都这样做 然后对比2个源代码里form那是否有不同
      

  23.   

    No   result   defined   for   action   com.action.BookAction上面说的很清楚了,你的人品有问题。
      

  24.   

    我以前也遇到过,楼主,最好的办法就是把这块重新作一遍,这样比改着快,千万别粘贴,但是中文的能执行说明你的action没问题,问题就在英文的jsp里面吧,我这样认为的不知道对不对,报错是路径的问题
      

  25.   

    出现未知错误,而你在BookAction没有定义在这个情况下的转向
      

  26.   

    确定你的变量都已经get和set过了
      

  27.   

    出现未知错误,strus2默认会跳转到<result   name="input"> *****.jsp </result> ,而你没有定义这个input,所以报错。一般出现在这种情况情况下是数据类型转换出错。请检查你的form中的字段是否和action中定义的属性是否可以转换。你说中文可以正确使用,所以请着重检查一些语言敏感的字段。