`
xxp3369
  • 浏览: 151380 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
oa_22:

结合Freemarker,将动态表单显示在公文的添加界面上

只需拷贝freemarker.jar包到类路径即可

1、了解Freemarker的基本使用(参考freemarker项目中的演示代码)
2、结合Freemarker动态显示表单
- DynaFormFunction.java
- WebRoot/document/add_input.jsp(使用自定义JSTL函数)



package com.bjsxt.oa.web;

import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import com.bjsxt.oa.manager.FormManager;
import com.bjsxt.oa.model.FlowForm;

import freemarker.cache.ClassTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;

public class DynaFormFunction {
	
	private static FormManager formManager;
	private static Configuration cfg = new Configuration();
	static{
		//定义模板文件应该从哪里加载,这是定义由DynaFormFunction类所在的路径下面的templates目录加载
		cfg.setTemplateLoader(new ClassTemplateLoader(DynaFormFunction.class,"templates"));
		cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
	}
	
	public static String form(int workflowId){
		try {
			//获得workflow对应的表单定义的数据
			FlowForm form = formManager.findForm(workflowId);
			if(form == null){
				return null;
			}
			
			Template template = cfg.getTemplate(form.getTemplate());
			
			Map root = new HashMap();
			root.put("form", form);
			
			//最终的输出的位置
			Writer out = new StringWriter();
			
			template.process(root, out);
			
			return out.toString();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}

	public void setFormManager(FormManager formManager) {
		DynaFormFunction.formManager = formManager;
	}
}



<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@include file="/common/common.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<link href="style/oa.css" rel="stylesheet" type="text/css">
<script language="javascript" src="script/public.js"></script>
<title>添加公文信息</title>
</head>
<body>
<center>
<form action="document.do" method="post" enctype="multipart/form-data">
<TABLE class="tableEdit" border="0" cellspacing="1" cellpadding="0" style="width:580px;">
	<TBODY>
		<TR>
			<!-- 这里是添加、编辑界面的标题 -->
			<td align="center" class="tdEditTitle">
			您要创建的公文
			</TD>
		</TR>
		<TR>
			<td>
			<!-- 主输入域开始 -->

<input type="hidden" name="method" value="add">
<input type="hidden" name="workflowId" value="${documentForm.workflowId}">
<table class="tableEdit" style="width:580px;" cellspacing="0" border="0" cellpadding="0">
	<tr>
		<td class="tdEditLabel" >公文名称</td>			
		<td class="tdEditContent"><input type="text" name="title">
		</td>
		<td class="tdEditLabel" >公文描述</td>			
		<td class="tdEditContent"><input type="text" name="description"></td>
	</tr>
	<tr>
		<td class="tdEditLabel" >公文附件</td>			
		<td class="tdEditContent"><input type="file" name="contentFile">
		</td>
		<td class="tdEditLabel" ></td>			
		<td class="tdEditContent"></td>
	</tr>
</table>
${my:form(documentForm.workflowId)}
			<!-- 主输入域结束 -->
			</td>
		</TR>
	</TBODY>
</TABLE>

<TABLE>
		<TR align="center">
			<TD colspan="3" bgcolor="#EFF3F7">
			<input type="submit" name="saveButton"
				class="MyButton" value="保存公文信息"> 
			<input type="button" class="MyButton"
				value="关闭窗口" onclick="window.close()">
			</TD>
		</TR>
</TABLE>
</form>
</center>
</body>
</html>
分享到:
评论

相关推荐

    OA_ICESat2_guide.pdf

    《OA_ICESat2_guide.pdf》使用说明详细解读 该文档是关于如何使用开放测高系统(OpenAltimetry)的指南,特别是针对ICESat-2(冰川卫星2号)的数据处理和分析。ICESat-2是美国国家航空航天局(NASA)发射的一颗卫星...

    Using Origin from LabVIEW.pdf

    22. **OA_Wks-Get-2Cols**:获取两个列的数据。 23. **OA_Wks-GetCell(numeric/string)**:获取单元格的数值或字符串值。 24. **OA_Wks-GetRange**:获取工作表的指定范围数据。 25. **OA_Wks-PutData**:向工作表...

    Linux下OA的安装

    Linux 下 OA 的安装 Linux 是一个流行的操作系统,OA(Office Automation)是常见的 office 自动化系统。今天,我们将在 Linux 环境下安装 OA,包括安装 JDK、Tomcat、MySQL 数据库和 OA itself。 安装 JDK 在 ...

    T-SQL基本语句与使用方法

    此示例将向`stuInfo`表中插入一条新记录,其中`stuName`为"张三",`stuNo`为"s25301",`stuAge`为22岁。 #### 2. 更新数据:`UPDATE`语句 - **语法格式**: ```sql UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ....

    通达OAV11办公系统与致远OA 8.1功能对比测试资料

    致远OA的数据备份与恢复步骤在第22页,通达OA紧随其后。企业需要确保所选系统在数据安全方面有强大的支持,包括快速有效的备份策略和在必要时能准确恢复数据的能力。 除了上述基础功能,我们还可以对比其他关键模块...

    泛微OA 8.0 数据字典

    泛微OA 8.0 数据字典,仅供参考 号 表名 中文名称 表类型 说明 1 outerdatawfdetail 输出数据流程详情表 2 outerdatawfperiodset 外部数据触发周期设置表 3 outerdatawfset 外部数据触发设置表 4 ...

    OA实施方案共22页.pdf.zip

    很抱歉,根据您提供的信息,"OA实施方案共22页.pdf.zip"似乎是一个关于OA(Office Automation,办公自动化)系统实施的文档压缩包,但压缩包内的具体文件内容并未给出,只有一个名为"赚钱项目"的条目,这不足以提供...

    oa系统功能介绍及流程图.pdf

    汇泽软件OA802系统涵盖了22个功能模块,具体如下: 1. **我的办公桌**:提供个性化的办公桌面,便于用户快速访问常用功能。 2. **工作流程**:支持自定义工作流程,实现审批过程的自动化。 3. **公文收发**:简化...

    泛微OA系统表结构说明文档(20161121135308).pdf

    泛微OA系统是一套办公自动化系统,该系统中的表结构说明文档详细描述了系统中各种表的结构、字段和数据类型。文档中提到的各个表前缀代表了系统中不同模块的功能。下面将详细介绍这些表及其可能代表的功能模块: 1....

    通达OA2015破解补丁

    22、远程技术支持、后续更新和服务 23、修正升级到8.8之后无法设置角色的问题 24、修正8.8升级到8.9后除了admin外其他用户无法登陆的问题 25、同步更新权限文件 测试站地址:http://211.157.190.227:8080/ 用户 ...

    mips_yamon_usm_02.22.tar.gz_OA系统_C/C++_

    【标题】"mips_yamon_usm_02.22.tar.gz_OA系统_C/C++_" 提供的信息表明,这是一个与 MIPS 架构相关的 YAMON 引导加载器的用户手册,版本为 02.22,并且与办公自动化(OA)系统有关,文档采用 C 和 C++ 语言编写或...

    办公室自动化、办公自动化与OA (22).pdf

    6. 第6代OA:智慧OA、移动OA。随着移动互联网和智能技术的发展,新一代OA系统支持远程办公、智能决策支持和移动办公等,更进一步地拓展了办公自动化的范畴。 中国的办公自动化起步于1978年,并逐渐发展成为一门专业...

    华天OA资料(关于华天协同办公自动化系统的资料)

    5. **系统优势**:《华天动力22个优势.doc》和《华天动力办公自动化软件的优势.doc》详述了华天OA系统的亮点,可能包括系统易用性、安全性、可扩展性、定制化能力等方面。 6. **工作流与文件管理**:《华天动力OA...

    夏茂政府网集成OA完整版 v2.0

    22.OA集成公文收发、通讯簿、文件柜、工作日志、我的文档等个人办公功能; 23.OA无需安装,支持虚拟空间,上传即可使用,使用浏览器即可实现全球办公; 24.周密的安全部署和攻击防护,全局运行的日志管理; 25.数据库...

    OA系统模块概述

    22. **人事管理**:管理员工人事档案、员工卡片和工种设定。 23. **客户管理**:维护客户档案,记录回访情况,增强客户关系管理。 24. **项目管理**:跟踪项目进度,管理项目状态。 25. **培训管理**:记录培训...

    OA系统的毕业设计的毕业论文

    4.1.4 日程安排模块流程图 22 4.1.5 工作日志模块流程图 23 4.1.6 短消息管理模块流程图 24 4.1.7 文件管理模块流程图 25 4.1.8 公告管理模块流程图 26 4.1.9 会议管理模块流程图 27 4.2 数据库设计 29 4.2.1 数据库...

    OA系统人事行政流程.docx

    ##### 22. **员工申诉流程** - **目的**:维护员工权益,解决争议。 - **关键步骤**:提交申诉材料、调查核实、处理与反馈。 ##### 23. **培训管理总体流程** - **目的**:提升员工技能,适应企业发展需要。 - ...

    夏茂政府网集成OA完整开源

    22.OA集成公文收发、通讯簿、文件柜、工作日志、我的文档等个人办公功能; 23.OA无需安装,支持虚拟空间,上传即可使用,使用浏览器即可实现全球办公; 24.周密的安全部署和攻击防护,全局运行的日志管理; 后台管理...

    专题资料(2021-2022年)办公自动化OA系统招标书.doc

    - 投标文件提交截止时间为2010年7月22日10:00,同时提交公司资质证明。 - 投标书递交至学院国资办,开标时间和地点另行通知,投标方需派技术人员出席述标。 - 可通过校园网下载标书或联系国资办获取,需支付投标...

    oa数据库用户手册

    22. **CRM**:客户关系管理表,整合客户信息与交互历史。 23. **CRM_CONTACT**:联系人表,存储与客户相关的联系人信息。 24. **CRM_CUSTOMER**:客户信息表,详细记录客户的基本资料。 25. **CRM_CUSTOMERT**:客户...

Global site tag (gtag.js) - Google Analytics