1、form 表单中的表单元素的值可以在action中通过 this.getRequest().getParameter();的形式获得,主要用来处理隐藏form 尤其是工作流中的隐藏数据String workFlowFullString = this.getRequest().getParameter("workFlowString");
2、在lgpDispatchFlow表中与workFlow表关联的字段是ORIGIN_WORK_FLOW_ID
3、流程的id发起源头是ngList.jsp页面上通过item.id触发创建,关联流程。在workflowNg.jsp页面通过隐藏form保存workFlowString字符串,并且设置四个必须熟悉的隐藏域。点击拟稿按钮后在saveWorkflowNg.action中保存了lgpdispatchFlow对象同时关联了workFlowId到ORIGIN_WORK_FLOW_ID字段中,进入对象创建页面,后续的操作都将关联到LgpdispatchFlow表的主键ID。对象被纳入流程。
4、struts中的自动注入原理:
拦截器+反射,就是在request到达后台处理程序之间,加一层拦截器,截获到request对象,就可以通过request.getParameters()获取请求参数,然后通过请求URL可以得知你要请求的是哪个action类的哪个方法,然后你action中定义了跟request请求参数名称同名的属性,并提供get set,那么通过java反射机制调用action类的响应属性的set方法就可以把参数值设置进去,也就是所谓的“action属性自动注入”。
所以从action的自动注入原理可知如果在url中定义了action中的同名属性,那么在请求到action时会把url中的参数自动注入到action中的 对应属性中去。
java.lang.String id = null;
private String flowId=null;
private String[] items;
public void prepare() throws Exception {
if (isNullOrEmptyString(id)) {
lgpContract = new LgpContract();
} else {
lgpContract = (LgpContract)lgpContractService.getById(id);
}
if (!isNullOrEmptyString(flowId))
{
this.lgpDispatchFlow = (LgpDispatchFlow)this.lgpDispatchFlowService.getById(flowId);
}
}所以在prepare方法中实际上已经完成了流程对象的创建