默认结果不是仅使用我的包的结果进行渲染。流程转到我的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";
}
答案 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;
}