Domanda

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";
}
È stato utile?

Soluzione 2

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

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top