spring mvc - Handling Multipart request that is not an Action request? -
i've been thinking if possible handle multipart request not action request. there reason why seems impossible me :
only actionrequest implements getfile() kind of methods. can't find easy way how file out of request other action request
what if don't use html form upload file , don't want view rendered after action request - render phase happens after action phase.
what if want create post request (with file(s)) ajax , use @resourcemapping handler. how out of resourcerequest ?
thank thoughts.
this "pattern" afaik best way of handling multipart requests
action request view layer goes method:
@actionmapping(params = "javax.portlet.action=sample") public void response(multipartactionrequest request, actionresponse response) { response.setrenderparameter("javax.portlet.action", "success"); list<multipartfile> filelist = request.getfiles("file"); }
render phase follows :
@requestmapping(params = "javax.portlet.action=success") public modelandview process(renderrequest request, model model) throws ioexception { map map = new hashmap(); map.put("test", new integer(1)); return new modelandview("someview", map); }
you create "bean" view :
@component("someview") public class someview extends abstractview { private logger logger = logger.getlogger(someview.class); @override protected void rendermergedoutputmodel(map map, httpservletrequest request, httpservletresponse response) throws exception { logger.info("resolving ajax request view - " + map); jsonobject jsonobj = new jsonobject(map); logger.info("content type = " + getcontenttype()); response.setcontenttype("application/json"); response.setcharacterencoding("utf-8"); response.getwriter().write(jsonobj.tostring()); response.getwriter().flush(); } }
you add beannameviewresolver servlet/portlet context:
<bean class="org.springframework.web.servlet.view.beannameviewresolver" p:order="1" />
Comments
Post a Comment