67,512
社区成员
发帖
与我相关
我的任务
分享
<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>
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");
}
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() {
return processDefinition;
}
public void setProcessDefinition(File processDefinition) {
this.processDefinition = processDefinition;
}
public File getProcessImage() {
return processImage;
}
public void setProcessImage(File processImage) {
this.processImage = processImage;
}
}
web.xml
<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
struts-config.xml
顺便说句,上面有的说?method=add访问不到,这里说明下
parameter="method" 这里指定了我要访问的标识,所以method=add就会去找add方法,这可以随便改
<struts-config>
<form-beans>
<form-bean name="UserForm" type="com.lzt.struts.form.user.UserForm" />
</form-beans>
<action-mappings>
<action path="/userAction" type="com.lzt.struts.action.UserAction"
name="UserForm" scope="request" validate="false" parameter="method">
<forward name="success" path="/user/success.jsp" />
</action>
</action-mappings>
</struts-config>
jsp
Form里面的属性类型要对应好
<body>
<form action="userAction.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>
</body>
我的访问链接:http://localhost:8080/Struts1Test/userAction.do
结果可以访问到 add方法。
测试完毕。
<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>
把
enctype="multipart/form-data"
和
请选择上传的流程文件:<input type="file" name="processDefinition" />
<br>
请选择上传的流程图片:<input type="file" name="processImage" />
去掉就可以执行add方法了。为什么???workflow.do?method=add
2.后台就需要这么得到
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String action = request.getParament("method");
if(action.equals("add")){
actionForward = this.add(mapping, form,
request, response);
}
}
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");
}
<form action="workflow.do" method="post"
enctype="multipart/form-data">
<input type="hidden" name="method" value="add">
隐藏域中设置了method,它不应该是执行add方法吗?