Develop Spring MVC Apps with JBuilder2005 - Multipart (FileUpload)

xiaoxiao2021-03-06  20

Develop Spring MVC Apps with JBuilder2005 - Multipart (FileUpload)

Gaoke Hua

About the author: Gao Jinghua, Nanjing Aviation College computing a master's degree in mathematics, more than ten years of corporate informationization work experience. Current research interest, J2EE enterprise application, ERP software research and development, data warehouse system research and development.

1. Establish basic Spring applications according to "Developing Spring MVC Applications with JBuilder2005"

2. Add a Commons-FileUpload.jar class library

3. Add two class files

/ src / fileupload / fileuploadController.java

Package fileupload;

Import java.io. *;

Import javax.servlet. *;

Import javax.servlet.http. *;

Import org.springframework.validation. *;

Import org.springframework.Web.bind. *;

Import org.springframework.web.multipart.support. *;

Import org.springframework.web.servlet. *;

Import org.springframework.Web.Servlet.mvc. *;

// snippet from FileUploadController

Public Class FileUploadController Extends SimpleFormController {

Protected ModlandView OnSubmit

HTTPSERVLETREQUEST REQUEST,

HTTPSERVLETRESPONSE RESPONSE,

Object Command,

Bindexception error) throws servletexception, ioException {

// Cast the bean

FileUploadBean bean = (fileuploadbean) Command;

// let's see if there's content there

Byte [] file = bean.getfile ();

IF (file.length == 0) {

// HMM, That's Strange, The User Did Not Upload Anything

Return New ModelandView (this.GetformView ());

}

// Well, Let's do Nothing with the bean for now and return:

File myfile = new file ("myfile.txt");

myfile.createnewfile ();

Try {

Return Super.onSubmit (Request, Response, Command, Errors);

} catch (exception ex) {

Return NULL;

}

}

protected void initbinder

HTTPSERVLETREQUEST REQUEST,

ServletRequestDataBinder Binder) THROWS servletexception {

// TO ACTUALLY Be Able To Convert Multipart Instance To Byte []

// we have to register a Custom Editor (in this Case THE

// ByteArraymultiparteditor

Binder.registerCustomeditor (byte []. Class, New ByteArraymultipartFileEditor ());

// Now Spring Knows How To Handle Multipart Object And Convert THEM

}

}

If you have selected the file you want to upload, file.length is not 0 when you upload files, otherwise file.length is 0. The content of the upload file is saved in the Byte [] file, this example does not process the uploaded file.

/Web-inf/fileupload/fileuploadbean.java

Package fileupload;

// snippet from FileUploadBean

Public clas fileuploadbean {

PRIVATE BYTE [] File;

Public void setfile (Byte [] file) {

THIS.FILE = file;

}

Public Byte [] getFile () {

Return file;

}

}

4. The springApp-servlet.xml file is as follows:

/Web-inf/springapp-servlet.xml

- Application Context Definition for "SpringApp" DispatcherServlet.

->

fileuploadController

Org.springframework.web.servlet.view.jstlview

/ web-inf / jsp /

.jsp

fileupload.fileUploadbean

FileUploadForm

Confirmation

"- one of the profmenties available; the maximum file size in bytes ->

100000

The value of the attribute success confirmation refers to Confirmation.jsp. InternalResourceViewResolver allows us to omit prefix (file path) and suffix (.jsp)

5. File confirmation.jsp is the confirmation page after the successful file success

/Web-inf/jsp/confirmation.jsp

<% @ Page ContentType = "Text / HTML; Charset = BIG5"%>

</p> <p>SuccessView</p> <p></ title></p> <p></ hEAD></p> <p><body bgcolor = "# ffffff"></p> <p><h1></p> <p>JBuilder Generated JSP</p> <p>SuccessView</p> <p></ h1></p> <p></ body></p> <p></ html></p> <p>6. If the user does not select the file that is uploaded, submit the form, file fileuploadform.jsp prompts the user to select the file uploaded file and then submit</p> <p>/Web-inf/jsp/fileuploadform.jsp</p> <p><html></p> <p><HEAD></p> <p><title> UPLOAD A File Please </ Title></p> <p></ hEAD></p> <p><body></p> <p><H1> NO File, please Upload A file </ h1></p> <p><form method = "post" action = "UPLOADFILE.HTM" encty = "multipart / form-data"> <input type = "file" name = "file" /></p> <p><Input Type = "Submit" /></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>7. File UPLOAD.JSP handles the processing of the form to UPLoadFile.htm (I don't know why, use UploadFile.form), springapp-servlet.xml reflects UploadFile.xml to the FileUploadController class.</p> <p>SpringApp / Web-INF / JSP / UPLOAD.JSP</p> <p><html></p> <p><HEAD></p> <p><title> UPLOAD A File Please </ TITLE></p> <p></ hEAD></p> <p><body></p> <p><H1> please Upload A File </ h1></p> <p><form method = "post" action = "UploadFile.htm" enctype = "multipart / form-data"></p> <p><Input Type = "file" name = "file" /></p> <p><Input Type = "Submit" /></p> <p></ form></p> <p></ body></p> <p></ html></p> <p>8. Browse http: // localhost: 8080 / SpringApp / upload.jsp</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-74981.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="74981" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.040</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'Ok6SnHjsRoch85GZnRPz_2FgaE2yB8XlFXMTnpbhL2XNdFeOykmnkC00RRBMtIzq4S5WeyzQdJ9ZtoBRhkGz27tA_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>