Struts_ActionForward

大纲:作用,数据结构,创建

1、Struts_ActionForward 模型层组件

  1. 作用:封装转向信息
  2. 在action的excute方法中创建,通过ActionMapping创建
  3. 由struts使用,
    excute的返回值是actionForward类型,struts通过ActionForwardConfig方法对actionForward里的转向信息进行分析,拿到相应的转向路径及其转向方式,由struts进行跳转到相应的结果页面

1、数据结构 封装了3个属性:name,path,redirect

actionForward继承forwardConfig
源码:

 public ActionForward(String name, String path, boolean redirect) {
        super();
        setName(name);
        setPath(path);
        setRedirect(redirect);  //默认为false,服务端跳转
    }

//配置
<forward name="login" path="/login.jsp" redirect="true"/>
public ActionForward findForward(String name) {
        ForwardConfig config = findForwardConfig(name);
        if (config == null) {
            config = getModuleConfig().findForwardConfig(name);
        }
        return ((ActionForward) config);
    }

//配置
<forward name="login" path="/login.jsp" redirect="true"/>

3、引入全局配置的原因:减少配置量

全局和局部配置都存在时,以局部为主
全局配置信息,

<global-forwards>
    <forward name="login" path="/login.jsp" redirect="true"/>
</global-forwards>
ModuleConfig封装整个配置文件

 public ModuleConfig getModuleConfig() {
        return (this.moduleConfig);
 }

4、创建actionForward的两种方式:

  1. 配置信息创建ActionForward mapping.findForward(“login”);
    产生的问题:通过配置信息创建的ActionForward不允许在程序中修改
  2. 手动创建ActionForward对象,actionForward提供了无参的构造方法
name=null
path=null
redirect=false

5、使用request和response进行跳转

注意:
1、跳转页面前要加上项目名 request.getContextPath() 拿到项目名
request.getRequestURI() 项目名后面的字符串(包括项目名)
2、return null

6、动态ActionForward( DynaActionForward)

在运行时动态生成跳转路径

ActionForward af = new ActionForward();
 af.setPath("/page" + page + ".jsp?name=Tom");
 return af;

猜你喜欢

转载自blog.csdn.net/Pluto__lxh/article/details/82017422