ssh 框架整合做的项目,当从第一个页面跳转到第二个页面的时候正常,但从第二个页面点击按钮往第三级页面跳转的时候 报错:java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [scoreAction];方法和配置文件是没问题的,我拿到第一级页面执行是可以执行的,但是当放到第二级页面就不行了(所有的方法都不能执行),求大虾们给看看啊。非常感谢!!!

解决方案 »

  1.   

    这是相应代码
    这是页面JS请求:
    document.forms[0].action = "/sims/score!modifyScore";这是struts2 配置:
    <action name="score" class="scoreAction">
    <result name="modifyScore" >/WEB-INF/jsp/modifyScore.jsp</result>
    </action>
    这是spring配置:
    <bean id="scoreAction" class="com.flynn.sims.action.ScoreAction"
    abstract="false" scope="prototype" lazy-init="default" autowire="default">
    <property name="scoreBiz">
    <ref bean="scoreBiz" />
    </property>
    </bean> 
      

  2.   

    java.lang.RuntimeException: Invalid action class configuration that references an unknown class named [xxxAction]。今天堆表单代码的时候出了个异常如上,可能有如下原因,希望能帮到出同样问题的各位童鞋们:1)xxxAction没有在Struts.xml中配置相应的action;2)如果使用了spring去管理anction,则有可能未在spring的配置文件中配置相应的bean;3)如果以上都排除,可能在Struts.xml中的action配置中没有配置result结果,此时检查是否有result项,或者result的type类型是否正确,检查action的返回string拼写是否正确;4)如果以上都排除,可能是action中取表单页面的数据时,数据类型不兼容,比如取字符串装进int类型变量;5)如果以上都排除,你可能写了表单验证的validate()方法,需仔细检查逻辑
    struts2配置中class="scoreAction"是不是写错了
      

  3.   

    我已经全部排查了,都没问题;需要说明下,如果将这个方法放到上一级页面中是可以执行的,但是放到跳转之后的下一级页面就不行了。将其他可以运行的方法放到本页也是不能执行的。不知道是什么原因。我的页面放到web-inf下的。
      

  4.   

    建议页面中引用action或jsp都用绝对路径。
    相对路径在div的load。iframe的src。jsp:include,等等方面一定会把你绕晕的。
    也就是:
    <%
    String httpPath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
    %>
    httpPath 的值类似于:http://192.168.0.1:8080/
    那么你引用你的action时需要这样:
    <form action="<%=httpPath%>/项目名/add.action"/> 
    或者记住在页面引用action的相对路径是相对于http://192.168.0.1:8080/的,而不是http://192.168.0.1:8080/项目名/。
    所以,如果你直接这样写是错误的:
    <form action="/add.action"/> 
    但是你可以这样写:
    <%String rootPath = request.getContextPath();%>
    <form action="<%=rootPath %>/add.action"/> 
    rootPath 的值是/项目名.所以<%=rootPath %>/add.action   <=>  /项目名/add.action
    最后,在页面form中直接这样写:
    <form action="add.action"/> 
    那么这个add.action是相对于form表单所在页面的位置的。
    比如你的页面是在根目录的,那么你写add.action。action的最后路径就是/项目名/add.action如果这个页面到了根目录/user/中。那么form中写add.action。action的最后路径就是:/项目名/user/add.action
    综上:在页面中的引用,带/的,表示从http://192.168.0.1:8080/开始相对。不带的,表示从页面的位置开始相对。
      

  5.   


    我已经全部排查了,都没问题;需要说明下,如果将这个方法放到上一级页面中是可以执行的,但是放到跳转之后的下一级页面就不行了。将其他可以运行的方法放到本页也是不能执行的。不知道是什么原因。我的页面放到web-inf下的。 
      

  6.   


    看看这个
    http://zhidao.baidu.com/question/94334157.html
      

  7.   

    我的天那 我哪有时间 看这一坨子代码,你用System.out.println()一点点找吧。我自己的错误,基本都能解决。你敢说配置没问题??少一个字母,多个引号怎么办??找找根源在哪?这样才好找。把项目包,复制给我,我帮你看看也行。
      

  8.   

    个人看错误信息应该是scoreAction没有注入到你用的action里面把
      

  9.   

    scoreAction 对应的spring xml文件中id是不是写错了,尤其是首字母大小写
      

  10.   

    刚刚收集了些action无法找到的原因及解决措施,
    点这里