先补充说一下自己定义流程整个的思路,自己定义流程的目的就是为了让一套代码解决多种业务流程。比方请假单、报销单、採购单、协作单等等。用户自己来设计流程图。
这里要涉及到这样几个基本问题,一是不同的业务需求,流程节点不一样。流程中的任务多少不一样,因此后台就必须解决这个逻辑处理上的问题。要能同一套代码实现动态任务数量的处理。
二是不同的业务各种字段叫法也不一样,各个节点相应的页面也应该不一样。比如请假单就须要请假申请人、请假天数、请假原因等字段,而报销单可能就是报销申请人、报销金额、报销原因、报销凭证等;申请页面要相应填写申请信息的页面,处理也面要相应处理任务的页面。不同业务之间自然也会有差别,因此就须要前台可以自己定义表单,用户自己来设计须要的页面。
三就是如何把后台自己定义和前台的自己定义关联起来正确的交互。
因此,遵循这一思路,我就分成这样三个步骤来着手,之前的学习中就着重攻克了后台逻辑适应不同数量任务的问题。
那么接下来就是第二步。实现前台的自己定义表单,我在工作中并不做前台。因此实现的过程也就是仅仅求功能实现,不求其它。
在自己定义表单中。使用到了ueditor表单设计器插件,
下载:http://formdesign.leipi.org/downloads.html#java
集成插件參考文档: http://formdesign.leipi.org/doc.html
实际上我就是把解压后的文件里的js、css和index.html拿到了我的文件里进行改动使用,我的项目基本结构例如以下图,当中webapp中红线框起来的是自己加的文件文件夹,没有框起来的就是从插件中拿来的:
项目基本环境配置例如以下:
1、maven导包相关配置文件pom.xml:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
webFormTest
webFormTest
war
0.0.1-SNAPSHOT
webFormTest Maven Webapp
http://maven.apache.org
junit
junit
4.11
org.springframework
spring-beans
4.0.9.RELEASE
org.springframework
spring-core
4.0.9.RELEASE
org.springframework
spring-aop
4.0.9.RELEASE
org.springframework
spring-context
4.0.9.RELEASE
org.springframework
spring-webmvc
4.0.9.RELEASE
org.springframework
spring-web
4.0.9.RELEASE
org.springframework
spring-aspects
4.0.9.RELEASE
org.springframework
spring-expression
4.0.9.RELEASE
org.springframework
spring-tx
4.0.9.RELEASE
javax.servlet
javax.servlet-api
3.1.0
com.fasterxml.jackson.core
jackson-annotations
2.2.3
com.fasterxml.jackson.core
jackson-core
2.2.3
com.fasterxml.jackson.core
jackson-databind
2.2.3
org.springframework
spring-context-support
4.0.9.RELEASE
mysql
mysql-connector-java
5.1.34
org.springframework
spring-jdbc
4.0.9.RELEASE
org.springframework
spring-test
4.0.9.RELEASE
org.codehaus.jackson
jackson-core-asl
1.9.11
org.codehaus.jackson
jackson-mapper-asl
1.9.11
webFormTest
2.web项目基本配置文件web.xml:
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
字符集过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
字符集编码
encoding
UTF-8
encodingFilter
/*
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring.xml
springMVC
*.do
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
3.sping相关配置文件:spring.xml:
>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
text/html;charset=utf-8
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">