Калитка: Как показать диалог Javascript, когда Form.MultiPart (true) - PullRequest
2 голосов
/ 20 февраля 2011

Когда я пытаюсь загрузить файл в Wicket, у меня появляется следующее исключение:

"ERROR org.apache.wicket.RequestCycle.logRuntimeException(RequestCycle.java:1529) - ServletRequest does not contain multipart content. One possible solution is to explicitly call Form.setMultipart(true), Wicket tries its best to auto-detect multipart forms but there are certain situation where it cannot.
java.lang.IllegalStateException: ServletRequest does not contain multipart content. One possible solution is to explicitly call Form.setMultipart(true), Wicket tries its best to auto-detect multipart forms but there are certain situation where it cannot.
at org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest.<init>(MultipartServletWebRequest.java:113)..."

Однако, когда я устанавливаю form.MultiPart(true), я не могу получить диалог Javascript с помощью:

target.appendJavascript("Some Message");

Кто-нибудь знает, как использовать Javascript, когда Form.Multipart(true)?

Спасибо!

1 Ответ

3 голосов
/ 21 февраля 2011

Если вы хотите вызвать диалоговое окно с предупреждением в качестве ответа на запрос ajax, вы можете использовать метод appendJavascript() (аргумент - это код javascript, а не простая строка, как код, который вы опубликовали):

target.appendJavaScript("alert('Some message');");

Если вы хотите вызвать оповещение при загрузке страницы, вы можете использовать поведение:

add(new AbstractBehavior() { // or Behavior, on Wicket 1.5
    @Override
    public void renderHead(Component component, IHeaderResponse response) {
        response.renderOnLoadJavaScript("alert('Some message');");
    }
});

Также возможно использовать метку и визуализировать непосредственно в тег . Просто не забудьте позвонить setEscapeModelStrings(false):

add(new Label("alert", "alert('Some message');").setEscapeModelStrings(false));

и

<script type="text/javascript" wicket:id="alert"></script>
...