- 浏览: 151194 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hx0637:
楼主!小弟要面临面试了,能否指导下小弟?
面试 深圳一家公司的 -
kljismi:
你好,我现在正在开这项目的代码,但是我不明白@Privileg ...
权限管理模块分析 -
yzhw:
终于找到了
ImageSizer.java -
sunloveny:
国
struts国际化 -
jackotty:
谢谢楼主的分享
struts validator验证框架
oa_21:
添加动态表单呈现层代码
- 理解批量数据的提交技巧(AutoArrayList.java)
添加的代码包括:
web/AutoArrayList.java
web/forms/FlowFormActionForm.java
web/actions/FlowFormAction.java
修改配置文件,加上formManager和formAction的配置:
applicationContext-actions.xml
applicationContext-beans.xml
WebRoot/WEB-INF/struts-config.xml
添加的JSP:
WebRoot/form/*.jsp
添加动态表单呈现层代码
- 理解批量数据的提交技巧(AutoArrayList.java)
添加的代码包括:
web/AutoArrayList.java
web/forms/FlowFormActionForm.java
web/actions/FlowFormAction.java
修改配置文件,加上formManager和formAction的配置:
applicationContext-actions.xml
applicationContext-beans.xml
WebRoot/WEB-INF/struts-config.xml
添加的JSP:
WebRoot/form/*.jsp
package com.bjsxt.oa.web; import java.util.ArrayList; public class AutoArrayList extends ArrayList { private Class itemClass; public AutoArrayList(Class itemClass) { this.itemClass = itemClass; } public Object get(int index) { try { while (index >= size()) { add(itemClass.newInstance()); } } catch (Exception e) { e.printStackTrace(); } return super.get(index); } }
package com.bjsxt.oa.web.actions; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.bjsxt.oa.manager.FormManager; import com.bjsxt.oa.manager.WorkflowManager; import com.bjsxt.oa.model.FieldItem; import com.bjsxt.oa.model.FlowForm; import com.bjsxt.oa.model.FormField; import com.bjsxt.oa.model.Workflow; import com.bjsxt.oa.web.forms.FlowFormActionForm; public class FlowFormAction extends BaseAction { private FormManager formManager; private WorkflowManager workflowManager; //主界面,显示所有的流程信息 @Override protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //获取所有流程信息进行显示 request.setAttribute("workflows", workflowManager.searchAllWorkflows()); return mapping.findForward("index"); } //打开某个流程表单的定义界面 public ActionForward addFormInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; int workflowId = ffaf.getWorkflowId(); Workflow workflow = workflowManager.findWorkflow(workflowId); FlowForm flowForm = formManager.findForm(workflowId); request.setAttribute("flowForm", flowForm); request.setAttribute("workflow", workflow); return mapping.findForward("form_input"); } //添加流程表单 public ActionForward addForm(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; FlowForm flowform = new FlowForm(); flowform.setTemplate(ffaf.getTemplate()); flowform.setId(ffaf.getId()); formManager.addForm(flowform, ffaf.getWorkflowId()); ActionForward forward = new ActionForward(); forward.setPath("/flowform.do?method=addFormInput&workflowId="+ffaf.getWorkflowId()); forward.setRedirect(true); return forward; } //打开界面,输入表单域,在这个界面上,需要选择表单域的类型和输入形式 public ActionForward formFieldInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; request.setAttribute("fieldtypes", formManager.searchFieldTypes()); request.setAttribute("fieldinputs", formManager.searchFieldInputs()); return mapping.findForward("formfield_input"); } //添加表单域 public ActionForward addFormField(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; FormField field = new FormField(); field.setId(ffaf.getId()); field.setFieldLabel(ffaf.getFieldLabel()); field.setFieldName(ffaf.getFieldName()); formManager.addField(field, ffaf.getFormId(), ffaf.getFieldTypeId(), ffaf.getFieldInputId()); return mapping.findForward("pub_add_success"); } //删除表单域 public ActionForward delField(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; formManager.delField(ffaf.getId()); return mapping.findForward("pub_del_success"); } //给某个表单域添加条目(输入界面),列出已有的条目 public ActionForward addItemInput(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; //首先根据ID的值,加载表单域 FormField field = formManager.findFormField(ffaf.getId()); request.setAttribute("field", field); return mapping.findForward("item_input"); } //添加条目 public ActionForward addItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { FlowFormActionForm ffaf = (FlowFormActionForm)form; List items = ffaf.getItems(); for (Iterator iter = items.iterator(); iter.hasNext();) { FieldItem item = (FieldItem) iter.next(); //如果没有输入任何值,则忽略不处理 if(item == null || item.getValue() == null || item.getValue().trim().equals("")){ iter.remove(); } } formManager.updateFieldItems(ffaf.getId(), ffaf.getItems()); return mapping.findForward("pub_add_success"); } public void setFormManager(FormManager formManager) { this.formManager = formManager; } public void setWorkflowManager(WorkflowManager workflowManager) { this.workflowManager = workflowManager; } }
package com.bjsxt.oa.web.forms; import org.apache.struts.action.ActionForm; import org.apache.struts.upload.FormFile; public class WorkflowActionForm extends ActionForm { private int id; private String name; private FormFile processDef; private FormFile processImage; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public FormFile getProcessDef() { return processDef; } public void setProcessDef(FormFile processDef) { this.processDef = processDef; } public FormFile getProcessImage() { return processImage; } public void setProcessImage(FormFile processImage) { this.processImage = processImage; } }
发表评论
-
oa_22
2009-02-04 22:20 1815oa_22: 结合Freemarker,将动态表单显示在公文 ... -
oa_20
2009-02-04 22:15 1292oa_20: 1、创建动态表单的领域模型 FieldInp ... -
oa_18
2009-02-04 22:07 862oa_18: 实现WorkflowManager接口,以及流 ... -
oa_17
2009-02-04 22:03 1229集成JBPM到OA系统,并实现JbpmFacade接口 - ... -
oa_16
2009-02-04 21:58 948oa_16: 根据用例分析的结果,创建WorkflowMan ... -
oa_15:
2009-02-04 21:55 886oa_15: 根据公文流转领域模型创建相关的实体类,并使用x ... -
oa_14
2009-02-04 21:51 1336利用JSTL函数实现即时认证 - SecurityFunc ... -
oa_13
2009-02-04 21:35 1392oa_13: 实现登录功能 - LoginAction ... -
oa_11
2009-02-04 20:51 916初步实现授权管理的界面,重点在于: 1、理解DWR如何使用,理 ... -
oa_10
2009-01-18 12:54 1134提供初始化数据的代码 ... -
oa_09
2009-01-18 12:48 1780提供人员管理、模块管理、角色管理、用户管理相关的代码。 同时 ... -
oa_08
2009-01-18 12:08 1064创建AclManager接口,并实现 - 理解权限管理子系统 ... -
oa_07
2009-01-18 11:54 1289引入Ant和Xdoclet的支持, ... -
oa_06
2009-01-18 11:48 1058利用ThreadLocal实现分页参数的透明传输(通过使用Th ... -
oa_05
2009-01-18 11:41 986从现有的分页处理方案中,抽象出AbstractManager, ... -
oa_04
2009-01-18 11:30 1171利用Pager-Taglib实现机构 ... -
oa_03
2009-01-18 11:22 1189在做完机构管理的业务逻辑之后,下面考虑呈现层的实现。 1、 ... -
oa_02
2009-01-18 11:05 1022整合Spring和Hibernate之后,对于业务逻辑类的测试 ... -
oa_01+
2009-01-18 10:55 1240package com.bjsxt.oa.manager.im ... -
oa_01
2009-01-18 10:48 1279oa_01: 1、建立机构管理的实体类,并映射【重点理解多对 ...
相关推荐
【标题】"java_oa.rar_java oa_oa ja_办公管理系统"揭示了这是一个基于Java语言开发的办公自动化(OA)系统。OA系统是用于企事业单位内部管理,提高工作效率的重要工具,通常包括文档管理、任务分配、流程审批等功能...
21. **文档记录**:每个功能的实现和修改都需要有相应的文档记录,便于后期的查阅和维护。 通过遵循这些规定,开发者可以构建出一个高质量、高效且安全的OA系统,满足业务需求并为未来的扩展打下坚实基础。
《OA_ICESat2_guide.pdf》使用说明详细解读 该文档是关于如何使用开放测高系统(OpenAltimetry)的指南,特别是针对ICESat-2(冰川卫星2号)的数据处理和分析。ICESat-2是美国国家航空航天局(NASA)发射的一颗卫星...
21. **OA_Save**:保存Origin项目或工作簿。 22. **OA_Wks-Get-2Cols**:获取两个列的数据。 23. **OA_Wks-GetCell(numeric/string)**:获取单元格的数值或字符串值。 24. **OA_Wks-GetRange**:获取工作表的指定...
- **EXT_ATTR_21 至 EXT_ATTR_30**: 类型为`DATETIME`,表示日期类型的扩展字段。它们可用于记录特定事件的日期和时间信息。 - **EXT_ATTR_31 至 EXT_ATTR_40**: 类型为`VARCHAR(50)`,表示枚举类型的扩展字段。这些...
第20-21周_MyBatis实现OA系统项目实战-RBAC部分源代码_imooc-oa-rbac
修正[新建工作流]空白问题 (产生原因:inc\utility_html.php文件里if($TD_MYOA_COMPANY_NAME == _( "通达...) 整合Office_IM 1500授权版本 修正pda、OA精灵不能正常登录问题 本软件仅供测试,请下载24后自行删除!
在修改WEB服务端口这一环节,致远OA的修改流程在第18页,通达OA在第21页。这可能暗示通达OA对于端口配置的设置相对复杂,需要更多步骤。对于企业来说,灵活的端口配置能够满足不同的网络环境需求,因此这一点在选择...
EXT_ATTR_21至EXT_ATTR_50则是DATETIME类型,用于记录日期和时间信息,如入职日期、会议时间等;EXT_ATTR_31至EXT_ATTR_50则是VARCHAR类型,可以存储枚举类型或固定选项的数据,比如员工的性别、状态等。 此外,EXT...
泛微OA 8.0 数据字典,仅供参考 号 表名 中文名称 表类型 说明 1 outerdatawfdetail 输出数据流程详情表 2 outerdatawfperiodset 外部数据触发周期设置表 3 outerdatawfset 外部数据触发设置表 4 ...
泛微OA系统是泛微网络科技股份有限公司开发的协同办公软件,E9版本是对之前版本的优化与升级,支持企业工作流程的数字化管理。在E9版本中,流程表单前端接口API是整个系统中用于前端开发和自定义表单功能的重要组成...
值得注意的是,有13815条流程超过三个月未归档,占未归档总数的21%。从年度数据来看,这一问题自2017年至2020年持续存在,且比例稳定在20%左右。 其次,报告分析了流程类型和用户处理情况。240个流程类型中有172个...
泛微OA系统是一款广泛应用于企业办公自动化的工作流管理系统,它提供了强大的WebService接口,使得外部系统可以方便地与其进行数据交互和流程控制。本说明文档详细介绍了如何使用这些接口,包括检查部署状态、调用...
心通达OA平台内置强大的企业级工作流引擎,研发积累21年,服务10多万家企业及政务客户。心通达OA平台采用JAVA SSM(Spring+SpringMVC+MyBatis)框架,技术包括流程引擎(Workflow)、表单引擎、即时通信(im)、签章、手写...
21. BudgetAuditMapping:预算审计映射,可能用于企业预算审计相关的数据匹配和分析。 22. FnaAccount:财务账户模块,包括账户成本中心、部门、账单、日志等信息。 23. FnaBudget:财务预算模块,涉及预算控制、...
21、在线自动升级 22、远程技术支持、后续更新和服务 23、修正升级到8.8之后无法设置角色的问题 24、修正8.8升级到8.9后除了admin外其他用户无法登陆的问题 25、同步更新权限文件 测试站地址:...
21. **系统管理**:提供系统配置、权限管理等功能,保障系统的正常运行。 22. **快捷菜单与桌面提醒**:支持个性化设置,便于用户快速获取信息。 #### 六、结语 汇泽软件OA802系统不仅涵盖了企业日常办公所需的...
致远A8-OA 0day POC 漏洞情况: 访问 /seeyon/htmlofficeservlet 出现 DBSTEP V3.0 0 21 0 htmoffice operate err '''
ASP是微软开发的一种服务器端脚本语言,用于生成动态网页,尤其在20世纪末到21世纪初广泛应用于企业信息化建设。这个系统旨在提高企业内部的工作效率,通过数字化流程实现日常工作自动化。 在该系统的描述中,提到...
21.OA集成合同、资产、办公用品、图书、销售等管理; 22.OA集成公文收发、通讯簿、文件柜、工作日志、我的文档等个人办公功能; 23.OA无需安装,支持虚拟空间,上传即可使用,使用浏览器即可实现全球办公; 24.周密的...