为了应付目前已开发大量的一些action的现有情况,同时也要解决以前工作不要去改动,又实现一些新功能, 查阅了一下资料。
基础思路如下:
在现有已方平台基础上的最基础的baseAction中加入基础方法,同时在全局继承的基础package,加入基础result
类型为“重定向”。返回值由基础action的变量动态生成。然后基于这些,就可以实现很灵活的操作,又不需要去重构旧代码
<package name="mydefault" extends="webwork-default"> <interceptors> <interceptor-stack name="coralStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servlet-config"/> <interceptor-ref name="prepare"/> <interceptor-ref name="i18n"/> <interceptor-ref name="chain"/> <interceptor-ref name="debugging"/> <interceptor-ref name="model-driven"/> <interceptor-ref name="fileUpload"/> <interceptor-ref name="static-params"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> <interceptor-ref name="validation"> <param name="excludeMethods">delete,edit,execute,list,selectlist</param> </interceptor-ref> <interceptor-ref name="workflow"> <param name="excludeMethods">delete,edit,execute,list,selectlist</param> </interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-ref name="coralStack" /> <global-results> <result name="error">/errors/error.jsp</result> <!-- 全局返回的 --> <result name="_toPage" type="redirect-action">${_toPageUrl}</result> </global-results> <global-exception-mappings> <exception-mapping result="error" exception="java.lang.Throwable"/> </global-exception-mappings> </package>
/**
* 最基础的一个Controller,供继承
*
*/
abstract public class BaseAction extends ActionSupport{
/**
* 返回名
*/
protected static final String RESULT_TOPAGE = "_toPage";
private String _toPageUrl;
public String get_toPageUrl() {
return _toPageUrl;
}
public void set_toPageUrl(String pageUrl) {
_toPageUrl = pageUrl;
}
/**
* 跳转的基础方法,在公共配置上也对应的配置上了公共返回名
* @return
*/
public String toPageUrl(){
//测试 ../这个操作非常有用,因为webwork result中是相对路径,通过..可以调整路径,实现访问另一个模块
//this._toPageUrl = "../admin/resourceIndex.do?flag=1.00";
return RESULT_TOPAGE;
}