2011-01-25 3 views
1

私は、ActionリクエストではないMultipartリクエストを処理できるかどうか考えていました。アクションリクエストではないマルチパートリクエストの処理?

のみActionRequestは、メソッドの はgetFile()の種類を実装しています:それは私には不可能だ理由があります。私は はどのように私は、ファイルをアップロードするHTMLフォームを使用しない場合は何のアクション 要求

以外の要求のうち、ファイル を取得する簡単な方法を見つけることができないと私はしたくありませんアクション要求後レンダリングされるビュー - レンダリングフェーズは、アクションフェーズの後に常に発生します。

ajaxで投稿要求を作成して@ResourceMappingハンドラを使用する場合はどうすればいいですか? ResourceRequestからどのように取得するのですか?

ありがとうございました。

答えて

1

これは、マルチパートは、ビュー層から

アクション要求を要求処理する最善の方法私の知る限りである「パターン」であるが、この方法に行く:

@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"); 
} 

は、位相が次のレンダリング:

@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); 
} 

"bean"ビューを作成します。

@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(); 
    } 
} 

あなたはあなたのサーブレット/ポートレットコンテキストにBeanNameViewResolverを追加します。

<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" p:order="1" /> 
関連する問題