как показать сообщения об ошибках/информации/фатальных ошибках в jsp, когда я использую spring-webflow с действием POJO?

здесь я использую spring-mvc (3.2.4) и spring-webflow (2.3.2). я определяю поток следующим образом:

<flow>
<decision-state id="check">
    <if test="signupFlowAction.checkPrecondition(messageContext)" then="firstState" else="error" />
</decision-state>

<view-state id="firstState">
    ... 
</view-state>

<view-state id="error" view="error/bad-thing-happens">
    ...
</view-state>

i want to check some business preconditions when the flow startup, so i using a POJO to do so.

public boolean checkPrecondition(MessageContext messageContext) {

    boolean oh_snap = true;

    if (oh_snap) {
        MessageResolver mr1 = new MessageBuilder().fatal().defaultText("fatal message here.").build();
        MessageResolver mr2 = new MessageBuilder().error().defaultText("error message here.").build();
        MessageResolver mr3 = new MessageBuilder().info().defaultText("info message here.").build();

        messageContext.addMessage(mr1);
        messageContext.addMessage(mr2);
        messageContext.addMessage(mr3);
    }

    return ! oh_snap;
}

этот код в порядке, но я не знаю, как показать сообщения в jsp. весенние taglibs не работали? я пробовал <spring:error path="*"/> ничего не произошло.


person Zhuo YING    schedule 29.10.2013    source источник


Ответы (2)


В вашем файле JSP попробуйте что-то вроде этого:

<c:forEach items="${flowRequestContext.messageContext.allMessages}" var="message">
  <li>
    Message Source is ${message.source}
    <br>
    Message Text is ${message.text}
  </li>
</c:forEach>
person fujy    schedule 29.10.2013

Предполагая, что у вас есть директива taglib Spring Form, указанная следующим образом:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

Тогда я думаю, что правильный синтаксис для использования тега ошибок:

<form:errors path="*" />
person Will Keeling    schedule 29.10.2013