Struts2中自定义的Result
jopen
9年前
引言
所谓自定义Result,就是由我们自行开发Result,而不是使用由Struts2预定义的result。
在实际的开发中使用自定义的result机会不大,因为常见的各种页面展示技术,都有struts2给我们做的比较好好的。
自定义的Result
观看Result的源码如下:
public interface Result extends Serializable { /** * Represents a generic interface for all action execution results. * Whether that be displaying a webpage, generating an email, sending a JMS message, etc. * * @param invocation the invocation context. * @throws Exception can be thrown. */ public void execute(ActionInvocation invocation) throws Exception; }
我们可以看到是一个接口,并且只有一个方法,那我们自定义的饿时候需要实现这个接口。
public class MyResult implements Result { public void execute(ActionInvocation invocation) throws Exception { System.out.println("要处理的Result字符串是"+invocation.getResultCode()); } }
可以看到,我们可以通过ActionInvocation 去获取ActionContext,在ActionContext里边封装着所需要的值。
然后我们需要在struts2的配置文件中进行配置和使用:
<struts> <package name="helloworld" extends="struts-default"> <result-types> <result-type name="MyResult" class="com.lc.action.MyResult" default="false"> </result-type> </result-types> <action name="loginAction" class="com.lc.action.LoginAction"> <result name="toWelocome" type="MyResult">/welcome.jsp</result> </action> </package> </struts>
标签里边的就是我们配置的一个自定义的result,然后我们在action中使用的时候是通过type=”MyResult”进行使用的。
到此一个自定义的result完成。