config包之ForwardConfig浅析

原创 2007年09月24日 11:38:00

 org.apache.struts.config.ForwardConfig浅析

struts-config.xml文件中每一个<froward>元素对应着一个org.apache.struts.config.ActionForward。ActionForward继承自ForwardConfig
<global-forward>元素用来声明全局的转发关系,它由零个或多个<forward>元素组成,<forward>元素用于把一个逻辑名影射到特定的URL,通过这种方式,Action类或者JSP文件无需指定实际的URL,只要指定逻辑名就能实现请求转发或者重定向。在<global-forwards>中定义的<forward>代表全局转发
<forward>元素中的className是指定和<forward>元素对应的配置类,默认值为org.apache.struts.action.ActionForward。
<forward>元素中的contextRelative项值为true,表示当path属性一"/"开头时,给出的是相对于当前上下文的URL。此项的默认值为false,它在org.apache.struts.config.forwardConfig中对应的属性为boolean contextRelative。
<forward>元素中的name是转发路径的逻辑名。此项是必须的,它在org.apache.struts.config.forwardConfig对应的属性为String name。
<forward>元素中的path指定转发或重定向的URI。此项是必须的,必须以"/"开头。当contextRelative属性为false时,表示URI路径相对于当前应用(application-relative);当contextRelative属性为true时,表示URI路径相对于当前上下文(context-relative),它在org.apache.struts.config.forwardConfig中对应的属性为String path。
<forward>元素中的redirect项为true时,表示执行重定向操作;当此项为false时,表示执行请求转发操作。此项默认为false。它在org.apache.struts.config.forwardConfig中对应的属性为boolean redirect。

以上<forward>元素中的各属性在forwardConfig中都有对应的get和set方法

类中方法解析
public class ForwardConfig implements Serializable {

    public ForwardConfig() {
        super();
    }

    public ForwardConfig(String name, String path, boolean redirect) {
        super();
        setName(name);
        setPath(path);
        setRedirect(redirect);
    }

    public ForwardConfig(String name, String path, boolean redirect,
                         boolean contextRelative) {
        super();
        setName(name);
        setPath(path);
        setRedirect(redirect);
        setContextRelative(contextRelative);
    }

    public ForwardConfig(String name, String path, boolean redirect,
                         String module) {
        super();
        setName(name);
        setPath(path);
        setRedirect(redirect);
        setModule(module);
    }

    protected boolean configured = false;

    protected boolean contextRelative = false;

    public boolean getContextRelative() {
        return (this.contextRelative);
    }

    public void setContextRelative(boolean contextRelative) {
        if (configured) {
            throw new IllegalStateException("Configuration is frozen");
        }
        this.contextRelative = contextRelative;
    }

    protected String name = null;

    public String getName() {
        return (this.name);
    }

    public void setName(String name) {
        if (configured) {
            throw new IllegalStateException("Configuration is frozen");
        }
        this.name = name;
    }

    protected String path = null;

    public String getPath() {
        return (this.path);
    }

    public void setPath(String path) {
        if (configured) {
            throw new IllegalStateException("Configuration is frozen");
        }
        this.path = path;
    }

    protected String module = null;

    public String getModule() {
        return (this.module);
    }

    public void setModule(String module) {
        if (configured) {
            throw new IllegalStateException("Configuration is frozen");
        }
        this.module = module;
    }

    protected boolean redirect = false;

    public boolean getRedirect() {
        return (this.redirect);
    }

    public void setRedirect(boolean redirect) {
        if (configured) {
            throw new IllegalStateException("Configuration is frozen");
        }
        this.redirect = redirect;
    }

    public void freeze() {

        configured = true;

    }

    public String toString() {

        StringBuffer sb = new StringBuffer("ForwardConfig[");
        sb.append("name=");
        sb.append(this.name);
        sb.append(",path=");
        sb.append(this.path);
        sb.append(",redirect=");
        sb.append(this.redirect);
        sb.append(",contextRelative=");
        sb.append(this.contextRelative);
        sb.append(",module=");
        sb.append(this.module);
        sb.append("]");
        return (sb.toString());

    }
}

struts1源码研究: org.apache.struts.action.ActionForward

ActionForward继承了下ForwardConfig,然后就写了6个构造函数……然后就没了 汗=。=! 有一句话没翻译出来,有看得懂的来帮个忙吧 : NOTE - This class w...

Android编译系统中的Kconfig,Makefile,.config编译系统浅析

在对Android进行编译时,用的ji,使用图形界面来对整个系统进行裁剪。当然,除了这条指令,还包括很多配置命令,比如make defconfig, make oldconfig等。这里主要就make...

linux ./config 浅析

1.简介 Config不是一种bash,config语言是linux内核的一种配置语言,config.in文件是使用该语言编写而成,在通常情况下,它看起很像一个SH语言的子集。config配置语言主...

jsp的config对象浅析。

转自:http://blog.csdn.net/titilover/article/details/6803869         config 对象代表当前JSP 配置信息,但JSP 页面...

web.config主要配置浅析

1、 节 作用:配置ASP.NET身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。 元素必需与 节配合使用。 示例: 特...

Spring4.3.x 浅析xml配置的解析过程(7)——解析context命名空间之annotation-config标签

概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-ti...
  • chyohn
  • chyohn
  • 2017年02月09日 12:09
  • 489

Android编译系统中的Kconfig,Makefile,.config编译系统浅析

在对Android进行编译时,用的就是Linux下的Makefile和Kconfig编译系统,对整个系统进行编译。当然还包括很多配置命令,比如make defconfig, make oldconfi...

Android编译系统中的Kconfig,Makefile,.config编译系统浅析

Android编译系统中的Kconfig,Makefile,.config编译系统浅析
  • ztguang
  • ztguang
  • 2016年11月01日 22:57
  • 230

config/system 下载包

  • 2009年08月05日 14:46
  • 3.16MB
  • 下载

mujava 所需jar包和config文件

  • 2017年03月31日 09:40
  • 2.51MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:config包之ForwardConfig浅析
举报原因:
原因补充:

(最多只允许输入30个字)