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完成。