[JAVA]使用struts,ibaits和JSTL开发简便通用的文..
时间:2005-12-25 来源:blueday
这一层的代码也是多次见到的老朋友了。事实上对于大多数数据库操作,我们都只需要上面这么一点代码。然后我们建立add的action方法。
public ActionForward add( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try {
Service.initSet();
DynaActionForm fm = (DynaActionForm) form;
DaoCommon.startTransaction(); |
从上面可以看出,文件的保存工作很简单,只有三句
DynaActionForm fm = (DynaActionForm) form; FormFile ff = (FormFile) fm.get("upload"); FileManager.saveFile(fileName, ff); |
此处有一个DynaActionForm,通过DynaActionForm我们可以节省一个ActionForm的工作了。当然,这也多了一个配置工作。在struts-conifg.xml里加一个。
<!-- upload form bean --> <form-bean name="uploadForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="upload" type="org.apache.struts.upload.FormFile"/> <form-property name="url" type="java.lang.String"/> <form-property name="desc" type="java.lang.String"/> </form-bean> |
这样,struts在页面提交以后会自动去找upload、rul和 desc这三个输入 ,并将它转成相应的数据类型。
所以我们很容易得到一个FormFile对象,而这个对象就包含了上传文件的所有信息。因此,我们的数据表相应的信息也有了
map.put(Constattachment.ATTACHFILENAME, ff.getFileName()); map.put( Constattachment.ATTACHMIMETYPE, ff.getContentType()); map.put( Constattachment.ATTACHFILESIZE, String.valueOf(ff.getFileSize())); map.put( Constattachment.ATTACHFILEPATH, "/file/" + ff.getFileName()); |