No result defined for action and result

眉间皱痕 提交于 2019-12-01 07:39:26

问题


Default result is not rendering using result for my package alone. Flow goes to my n0result method then It throws Exception.

Please correct my wrong configuration.

Output :

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)

Form:

<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>

Action :

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

回答1:


Nothing wrong with the struts configuration. What is wrong is that "noresult" result is not found in the action configuration. You have either configure a result or return a result code that you have in the action config such as SUCCESS for example.

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



回答2:


What ever the string value your are returning from the action class method. You must declare a result name with the returned string value. example in your code:

Change

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

to

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

OR

You can add one more result in the action. like below

    <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> 

I hope It ll work.



来源:https://stackoverflow.com/questions/20780945/no-result-defined-for-action-and-result

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!