`

做template时配置文件的解析

    博客分类:
  • JAVA
XML 
阅读更多
1.页面中有Page.action?returnPage=scene
2.PageAction.java 
这里是把配置文件加载进来了。
这里的包simple.xml是用来解析xml文件。
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;
import org.simpleframework.xml.stream.Format;
import org.simpleframework.xml.stream.HyphenStyle;
import org.simpleframework.xml.stream.Style;
@Override
public String execute() throws Exception {
URL url = this.getClass().getClassLoader().getResource(
				"page-config.xml");
if (url == null) {
	return "error";
}

String path = url.toString().startsWith("file:") ? url.toString()
		.substring(5) : url.toString();
File file = new File(path);
Style style = new HyphenStyle();
Format format = new Format(style);
Serializer serializer = new Persister(format);
PageConfigFactory pageFactory = serializer.read(
		PageConfigFactory.class, file);
PageConfig pageConfig = pageFactory.getPageConfigByName(returnPage);
...这里页面中的returnPage=scene,得调用下面的PageConfigFactory.java
...
}

 

3.PageConfigFactory.java
public class PageConfigFactory {
	
@ElementList(required = false)
List<PageConfig> pageConfigs = new ArrayList<PageConfig>();

public List<PageConfig> getPageConfigs() {
	return pageConfigs;
}

public void setPageConfigs(List<PageConfig> pageConfig) {
	this.pageConfigs = pageConfig;
}

public PageConfig getPageConfigByName(String name){
	PageConfig pageConfig = getPageConfig(name);
	if (pageConfig == null){
		pageConfig = getPageConfig("default");
	}
	return pageConfig;
}

private PageConfig getPageConfig(String name){
	for (PageConfig pageConfig : pageConfigs) {
		if (name.equals(pageConfig.getPageName())){
			return pageConfig;
		}
	}
	return null;
}

 

4.PageConfig.java
@Root(name = "pageconfig")
public class PageConfig {
@Attribute
private String pageName;
@Element(required = false)
private boolean pageLogin;
@Element(required = false)
private String pageType;
@Element(required = false)
private String pageSorting;
@Element(required = false)
private String pageSearchBy;
@Element(required = false)
private String pageSearchValue;
@Element(required = false)
private boolean pageFuzzySearch;
@Element(required = false)
private boolean showTotalMovieScenes;

public String getPageName() {
	return pageName;
}

public void setPageName(String pageName) {
	this.pageName = pageName;
}

 

5.page-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<page-config-factory>
   <page-configs class="java.util.ArrayList">
      <pageconfig page-name="default">
         <page-login>false</page-login>
         <page-type></page-type>
         <page-sorting></page-sorting>
         <page-search-by></page-search-by>
         <page-search-value></page-search-value>
      </pageconfig>
      <pageconfig page-name="index">
      	 <page-type>movie</page-type>
      	 <page-sorting>date</page-sorting>
      	 <page-size>5</page-size>
      </pageconfig>
      <pageconfig page-name="scene">
      	 <page-type>scene</page-type>
      	 <page-size>5</page-size>
      </pageconfig>
      <pageconfig page-name="playerscene">
      	 <page-login>true</page-login>
      	 <show-scene>true</show-scene>
      	 <view-video>true</view-video>
      </pageconfig>
      <pageconfig page-name="playertourscene">
      	 <show-scene>true</show-scene>
      	 <view-tour>true</view-tour>
      </pageconfig>
   </page-configs>
</page-config-factory>

 

分享到:
评论

相关推荐

    iniConfig/ini配置文件解析通用类

    这个ini配置文件解析通用类通过巧妙地利用STL容器,实现了快速、灵活的配置管理,适用于各种需要读写配置的场景。用户只需调用相应的接口,即可方便地访问和修改配置信息,极大地提高了开发效率。

    解析excel、xml配置文件&&输出java测试文件Demo

    在Java开发中,解析Excel和XML配置文件是常见的任务,特别是在构建可配置系统或处理数据导入导出时。Spring框架的出现,使得这项工作变得更加简便。本Demo将演示如何使用Java来解析Excel和XML配置文件,并基于这些...

    ssm框架配置文件

    接下来,我们将逐一解析这些配置文件的作用和重要性。 1. **jdbc.properties**: 这是一个属性文件,用于存储数据库连接的相关配置,如数据库URL、用户名、密码和驱动类名等。在Spring或MyBatis中,通常会通过加载...

    MIB文件解析

    在本项目中,我们讨论的是一个使用标准C++和STL模板实现的MIB文件解析器,其目标是读取MIB文件,提取其中的所有节点信息,并将这些信息存储在一个映射(map)数据结构中。 首先,我们需要理解STL模板在C++中的作用...

    stl的配置文件

    在深入探讨STL配置文件之前,我们先来了解一下STL(Standard Template Library)的基本概念。STL是C++标准库的一部分,它提供了一系列模板类和函数,用于实现数据结构(如向量、列表、队列等)和算法(排序、查找等...

    高效c++ ini文件解析器

    在C++中,开发一个高效ini文件解析器意味着利用STL(Standard Template Library)的优势来实现快速、内存有效且易于维护的代码。 STL是C++标准库的核心部分,提供了容器(如vector、list、map等)、迭代器、算法和...

    详解Spring的配置文件

    #### 三、Spring配置文件的关键元素解析 1. **XML声明和DTD定义**: - `&lt;xml version="1.0" encoding="UTF-8"&gt;`:指定了文档版本为 1.0,字符编码为 UTF-8。 - `&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN...

    读取配置文件ConfigHelper

    在IT行业中,配置文件是应用程序不可或缺的部分,它们存储着应用运行时必要的参数和设置,使得开发者可以灵活地调整和管理程序的行为。C++作为一种强大的系统级编程语言,虽然没有内置的配置文件处理机制,但我们...

    flex解析xml文件

    这种做法在处理动态数据或者需要自定义配置的场景中非常有用,因为它允许开发者将配置信息存储在XML文件中,然后在运行时动态加载和使用。同时,使用XML作为数据交换格式,因为其结构清晰,易于理解和处理,是一种...

    elsarticle-template 包含文件

    本文将详细解析`elsarticle-template`模板,并分享一些个人添加和修正的技巧。 首先,`elsarticle-template`包含了撰写学术文章的基本框架和样式文件,如`\documentclass{elsarticle}`定义了文档类,`elsarticle....

    c# 模板引擎TemplateEngine 源码生成

    `.suo`文件是用户特定的配置文件,保存了IDE的个性化设置。`License.txt`包含了软件的许可协议,使用前请仔细阅读。`下载说明.txt`和`使用说明.txt`提供了获取和使用该库的指南,而`Demo`目录可能包含了一些示例代码...

    基于虚拟机集群hadoop2.7.1配置文件

    首先,我们来看标题——"基于虚拟机集群hadoop2.7.1配置文件"。这意味着我们要在多台虚拟机上建立一个Hadoop集群,使用的是Hadoop 2.7.1版本。这个版本是Hadoop的稳定版本,包含了YARN(Yet Another Resource ...

    uCOSII-Template.7z

    1. **工程配置文件**:这可能包括CubeMX配置文件,用于初始化STM32的外设,如时钟、GPIO、中断等。CubeMX是一个图形化工具,可以帮助开发者快速设置STM32的硬件环境。 2. **uCOSII源代码**:包含了RTOS的核心函数和...

    MYSQL安装目录及配置文件详解.pdf

    ### MySQL安装目录及配置文件详解 #### 一、MySQL 的目录结构 MySQL 是一款非常流行的开源关系型数据库管理系统,广泛应用于各种应用场景。了解其安装目录结构对于管理与维护数据库至关重要。 1. **bin 目录** ...

    简易XML解析器

    使用这个简易XML解析器,开发者可以轻松地在自己的项目中处理XML数据,无论是读取配置文件、解析XML数据交换还是生成XML报告。通过xCfgParser.h提供的接口,可以方便地集成到C++项目中,而无需依赖大型的XML解析库。...

    elsarticle-template ,Elsevier LaTeX模版

    5. elsarticle-template 示例文件解析: - `main.tex`:主文件,包含了文章的各个部分,如\maketitle,\begin{abstract},\section等命令用于构建文章结构。 - `elsarticle.cls`:样式文件,定义了elsarticle模板...

    code-template.zip

    配置文件用于设定数据库连接信息,而脚本则负责解析模板并生成最终的Java代码。 为了更好地利用这个工具,开发者需要具备一定的Java基础知识,了解数据库操作以及SQL语句。同时,熟悉Maven或Gradle等构建工具也是...

    artTemplate

    5. **社区支持**: 虽然artTemplate相对较小,但它拥有一定的社区支持,开发者可以在遇到问题时寻求社区的帮助,或者利用现有的插件和扩展来增强其功能。 **文件"aui-artDialog-944db04"** 在压缩包中的"aui-...

    C#配置文件概述[文].pdf

    XML标记和属性在配置文件中是区分大小写的,这一点非常重要,因为解析器会根据大小写来识别元素和属性。 配置文件的结构基于一个根节点`&lt;configuration&gt;`,在这个根节点下,我们可以定义不同的配置节。例如,`...

    Laravel开发-template-manager

    - **模板更新**:当项目模板需要进行更新或升级时,`template-manager` 可以帮助同步所有相关文件,确保模板的一致性。 - **模板组织**:通过分类和命名规则,开发者可以更好地组织和管理项目中的各种模板,使得...

Global site tag (gtag.js) - Google Analytics