没有为行动和结果定义结果

时间:2013-12-26 07:29:53

标签: java jsp configuration struts2 actionresult

默认结果不是仅使用我的包的结果进行渲染。流程转到我的n0result方法,然后它会抛出Exception

请更正我错误的配置。

输出

Hello How are you noresult() method got called.....
Dec 26, 2013 12:48:04 PM org.apache.struts2.dispatcher.Dispatcher serviceAction
SEVERE: Could not find action or result
No result defined for action leo.struts.HelloWorldAction and result noresult - action - file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Strut2Examples/WEB-INF/classes/struts.xml:99:93
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:350)

形式:

<s:form action="noresultactionupdate" >            
            <s:submit value="noresultactionupdate"/>
</s:form>

struts.xml中

<package name="resultpackage" extends="struts-default">     
        <result-types>
            <result-type name="defaultdispatcher" default="true"
                class="org.apache.struts2.dispatcher.ServletDispatcherResult" />
        </result-types>

        <action name="noresultactionupdate" class="leo.struts.HelloWorldAction" method="noresult">
            <result name="success">/noresultend.jsp</result>
            <result name="defaultdispatcher">/noresultdefaultdispatcher.jsp</result>
        </action>       
</package>

行动:

public String noresult() throws Exception {         
    System.out.println("Hello How are you noresult() method got called.....");
    setMessage("noresult");
    return "noresult";
}

2 个答案:

答案 0 :(得分:2)

您从操作类方法返回的string value是什么?您必须声明result name with the returned string value。 代码中的示例:

更改

<result name="success">/noresultend.jsp</result>

<result name="noresult">/noresultend.jsp</result>

您可以在操作中再添加一个结果。如下所示

    <action name="noresultactionupdate" 
            class="leo.struts.HelloWorldAction" method="noresult">
      <result name="success">/noresultend.jsp</result>
     <result name="noresult">/noresultend.jsp</result>
      <result name="defaultdispatcher">/noresultdefaultdispatcher.jsp</result>
      </action> 

我希望它会起作用。

答案 1 :(得分:1)

struts配置没什么问题。有什么问题是在操作配置中找不到"noresult"结果。您可以配置结果或返回操作配置中的结果代码,例如SUCCESS

public String noresult() throws Exception {         
    System.out.println("Hello How are you noresult() method got called.....");
    setMessage("noresult");
    return Action.SUCCESS;
}