Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

java - No result defined for action and result

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";
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...