index.jsp
<form action="workflow.do" method="post"
enctype="multipart/form-data">
<input type="hidden" name="method" value="add">
<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="file" name="processDefinition" />
<br>
请选择上传的流程图片:
<input type="file" name="processImage" />
<br>
<input type="submit" name="submit" value="上传" />
<!-- 主输入域结束 -->
</td>
</TR>
</TBODY>
</TABLE>
</form>
WorkflowAction.java
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.err.println("hello");
WorkflowActionForm waf = (WorkflowActionForm) form;
workflowManager.deployProcessDefinition(waf.getProcessDefinition()
.getFileData(), waf.getProcessImage().getFileData());
return mapping.findForward("add_success");
}
为什么WorkflowAction.java中的add方法不被执行?其他方法可以执行。
因为你让表单提交是按二进制流来提交的、楼主可以查查资料表单的enctype有三种方式来交互
enctype="multipart/form-data"
如果你表单若要带这个参数 且还要带自己设定的参数的话 是需要分离出来的、
不过struts1没用过、自己动手搜索下struts1上传文件并传递参数如何做吧、
去掉隐藏域,这样workflow.do?method=add这样提交下看看,
Action
public class UserAction extends DispatchAction {
/**
* 测试
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("增加");
return mapping.findForward("success");
}
}
Form
public class UserForm {
private String fileName;
private File processDefinition;
private File processImage;
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public File getProcessDefinition() {