日期:2014-05-18  浏览次数:20832 次

Struts2能进入Action但是找不到result的问题
学了Java一年多,项目也写了几个。包括毕业设计都是自己用Struts做出来的。现在在公司,一个同事问了我一个关于动态添加Html组建,在后台处理多个值的问题。我就用Struts2搭了一个很小的框架,结果出现了问题。正如标题所说,能进入Action,但是无论result名字怎么改,都找不到result。
下面贴上代码,请高手指点一二。
web.xml部分代码:
XML code

  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>*.action</url-pattern>
  </filter-mapping></web-app>


JSP页面部分代码:
HTML code

<form name="send" method="post" action="act.action">


struts.xml部分代码
XML code

<package name="s" extends="struts-default">
    <action name="act" class="com.ustcsoft.action.Act">
        <result name="error">/act.jsp</result>
    </action>
</package>



Act.java文件:
Java code

public class Act extends ActionSupport {

    private String username;

    public String execute() throws Exception {
        return "error";
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
}


错误信息也贴出来吧:
2011/09/06 16:24:42 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: Could not find action or result
No result defined for action com.ustcsoft.action.Act and result error

自己也排错排了很久,上网上查,一部分是写错了名字,一部分是大小写问题,一部分是Struts2不稳定。Myeclipse重启两次了,想做最后的努力,知道CSDN高手如云,也最喜欢到这个论坛搜一些问题。请看出来问题的不吝赐教。在此谢过了。

------解决方案--------------------
调试一下,看是否执行excecute()

看下跳转的error
------解决方案--------------------
清理一下你的项目然后重新编译
------解决方案--------------------
这二天逛论坛时遇见很多这样的问题了,从兰州的配置来看我觉得应该无问题,于是也去看了些东西。请试下在
execute()方法执行时加上以下代码,看看运行时的配置信息是什么
Dispatcher.getInstance().getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs().get("namespace").get("actionName").getResults().get("resultName");
也可以观察下
Dispatcher.getInstance().getConfigurationManager().getConfiguration().getRuntimeConfiguration().getActionConfigs()这个里面的值直到找到你的ACTION配置的RESULT