⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page.java.svn-base

📁 EasyJWeb是基于java技术
💻 SVN-BASE
字号:
package com.easyjf.web;

/**
 * 
 * <p>
 * Title:视图模板页面/转向
 * </p>
 * <p>
 * Description:页面type主要包括两种,一种是模板文件(template),另外一种是直接跳转地址(html)
 * 还有一种是带环境跳转(action)
 * 2007-9-5 增加一种(forward)类型的跳转,用于支持缓存
 * </p>
 * <p>
 * Copyright: Copyright (c) 2006
 * </p>
 * <p>
 * Company: www.easyjf.com
 * </p>
 * 
 * @author 蔡世友 郭朝斌
 * @version 1.0
 */

public class Page {

	/**
	 * 页面名称
	 */
	private String name = "";

	/**
	 * 页面路径
	 */
	private String url = "";

	/**
	 * html/template/action/null 模版用于执行合并,html用于直接跳转,action用于在模块跳转
	 */
	private String type = "";

	/**
	 * 用来指定模板的输出类型,可以包含wml、js、html、json、xml、txt等各种内容。
	 */
	private String contentType = "html";// 

	/**
	 * 用于表示不提供任何反馈的空结果集。当得到类型为null的Page时,EasyJWeb将不会给客户端返回任何结果。
	 */
	public final static Page nullPage = new Page("nullPage", "", "null");

	public Page() {
		this("", "");
	}

	/**
	 * 创建一个类型为template的 Page对象 如果没有指定Page类型,则系统默认为template模板
	 * 
	 * @param name
	 *            视图的逻辑名称
	 * @param url
	 *            视图页面模板的路径
	 */
	public Page(String name, String url) {
		this(name, url, Globals.PAGE_TEMPLATE_TYPE);
	}

	/**
	 * 创建一个类型为template的 Page对象 如果没有指定Page类型,则系统默认为template模板
	 * 模板名为url文件名
	 * 
	 * @param url
	 *            视图页面模板的路径
	 */
	public Page(String url) {
		String name =url;// "";
		/*if (url.indexOf("/") > 0 || url.indexOf("\\") > 0) {
			url.replace('\\','/');
			name = url.substring(url.lastIndexOf("/") + 1);
			name = name.substring(0, url.lastIndexOf("."));
		}*/
		this.name = name;
		this.url = url;
		this.type = Globals.PAGE_TEMPLATE_TYPE;
	}

	/**
	 * 根据所传递的参数创建一个Page对象
	 * 
	 * 
	 * @param name
	 *            视图模板的逻辑名称
	 * @param url
	 *            视图模板的路径
	 * @param type
	 *            视图类型,包括template及html两种
	 */
	public Page(String name, String url, String type) {
		this.name = name;
		this.url = url;
		this.type = type;
	}

	/**
	 * 每一个视图模板均有一个逻辑名称,在必要的时候,EasyJWeb会把这模板缓存起来,从而提交模板加载的效率,模板缓存正是通过这个name来进行的。
	 * 视图模板的逻辑名称一般为字母、数字及下划线组合
	 * 
	 * @return 视图的逻辑名称
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置当前视图的逻辑名称
	 * 
	 * @param name
	 *            视图的逻辑名称
	 */
	public void setName(String name) {
		this.name = name == null ? "" : name;
	}

	/**
	 * 视图的类型,EasyJWeb中的视图类型有模板template及页面转向html两种。在以后的版本中将会提供更多的支持。
	 * 
	 * @return 视图的类型,若为模板页面则为template,若为页面转向,则为html
	 */
	public String getType() {
		return type;
	}

	/**
	 * 设置视图的类型
	 * 
	 * @param type
	 *            视图类型,template表示模板,html表示页面转向。
	 */
	public void setType(String type) {
		this.type = type == null ? "" : type;
	}

	/**
	 * 视图的路径。EasyJWeb中的视图主要有两种,该值分别如下:
	 * 1、模板template即type的值为template时
	 * EasyJWeb中的视图默认存放在/WEB-INF/views/目录下。这一路径是指从基路径(即默认路径)开始的路径。
	 * 也可以从classpath或jar中调用模板,这时url为形如classpath:com/easyjf/web/easyjf-web.xml的格式。
	 * 2、页面转向html即type的值为html时
	 * 此时url返回的是一个真实的URL路径,即可是是形如http://www.easyjf.com/easyjweb/这样以http或其它协议形式开头的url,也可以是/news.ejf?dirId=111类似这种站内url
	 * 
	 * @return 得到视图的路径
	 */
	public String getUrl() {
		return url;
	}

	/**
	 * 设置视图的路径
	 * 
	 * @param url
	 *            视图的路径
	 */
	public void setUrl(String url) {
		this.url = url == null ? "" : url;
	}

	/**
	 * 视图模板的内容类型。
	 * EasyJWeb的视图模板可以是多种模板,比如,相对于文本格式的模板来说,包括json、wml、html、xml...等。另外还可以生成其它的标签的ContentType.
	 * 
	 * @return 当页视图的内容类型
	 */
	public String getContentType() {
		return parseContentType(contentType);
	}

	private String parseContentType(String name) {
		if ("json".equalsIgnoreCase(name) || "js".equalsIgnoreCase(name))
			return "text/javascript;charset=UTF-8";
		else if ("wml".equalsIgnoreCase(name))
			return "text/vnd.wap.wml;charset=UTF-8";

		else if ("xml".equalsIgnoreCase(name))
			return "text/xml;charset=UTF-8";
		else {
			if (name.indexOf("/") > 0)// 在name上包含/,手动指定模板内容如text/xml;charset=GBK
				return name;
			else
				return "text/html;charset=UTF-8";// 其它的都直接返回html
		}
	}

	/**
	 * 设置视图的内容类型 可以调用的类型逻辑名有json,wml,js,xml,html,htm,txt
	 * wml、js、html、json、xml、txt等。
	 * 也可以直接使用完整的文档类型定义,如text/javascript;charset=UTF-8
	 * 默认值为text/html;charset=UTF-8
	 * 
	 * @param contentType
	 *            模板类型名称或具体值
	 */
	public void setContentType(String contentType) {
		this.contentType = contentType;
	}

	/**
	 * Page的详细信息 返回Page属性字符串
	 */
	public String toString() {
		return "name=" + name + ";url=" + url + ";type=" + type;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -