2016-04-21 1 views
0

В настоящее время я использую Wicket и плагин jQuery для обрезки изображения («croppic»), и ему нужно запросить с помощью ajax мой back-end, чтобы обрезать изображение. Данные отправляются в многостраничном формате.Доступ к данным о множественной форме внутри Wicket Ajax Behavior

My Wicket back-end - это поведение Ajax с помощью метода onRequest и я не знаю, как получить многостраничные данные.

@Override 
public void onRequest() { 
    String json = "{}"; 
    boolean hasError = false; 

    RequestCycle cycle = getComponent().getRequestCycle(); 
    IRequestParameters parameters =  cycle.getRequest().getPostParameters(); 

Этот код имеет доступ только к классическим переменным POST, но не может использоваться для передачи данных формы (значения пустые).

Вы знаете, как действовать дальше?

PS: эта нить полезным, но не понятно для меня: Wicket 6 - Capturing HttpServletRequest parameters in Multipart form?

Полезная нагрузка тела:

------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgUrl" 

https://scontent.xx.fbcdn.net/hprofile-xpf1/t31.0-  1/c0.0.1536.1536/13055008_225242101175595_5770204993752392511_o.jpg 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgInitW" 

1536 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgInitH" 

1536 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgW" 

500 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgH" 

500 
------WebKitFormBoundarykpVsQAYFGJywlAZd 
Content-Disposition: form-data; name="imgY1" 

и т.д ...

ответ

1

Попробуйте с:

WebRequest webRequest = (WebRequest) cycle.getRequest(); 
MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(getMaxSize(), "ignored"); 
multiPartRequest.parseFileParts(); 
IRequestParameters params = multiPartRequest.getRequestParameters(); 
+0

Спасибо вам за ответ, но у меня не было метода getMaxSize() ... – christophedebatz

+0

Вы можете принять мой ответ. –

0

Вот мой последний код, который работает ... очень уродливый, но он работает правильно.

@Override 
public void onRequest() { 
    boolean hasError = false; 
    IRequestParameters parameters = null; 
    RequestCycle cycle = RequestCycle.get(); 
    ServletWebRequest webRequest = (ServletWebRequest) cycle.getRequest(); 

    try { 
     MultipartServletWebRequest multiPartRequest = webRequest.newMultipartWebRequest(Bytes.kilobytes(10), "ignored"); 
     multiPartRequest.parseFileParts(); 
     parameters = multiPartRequest.getRequestParameters(); 

    } catch (FileUploadException e) { 
     hasError = true; 
    } 

После этого вы можете легко назвать:

parameters.getParameterValue("you_param"); 
Смежные вопросы