1

我在这里使用 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>

我想在流程启动时检查一些业务前提条件,所以我使用 POJO 来执行此操作。

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 中显示消息。春天的标签库没有工作?我试过<spring:error path="*"/>什么都没发生。

4

2 回答 2

4

在你的JSP文件中,尝试这样的事情:

<c:forEach items="${flowRequestContext.messageContext.allMessages}" var="message">
  <li>
    Message Source is ${message.source}
    <br>
    Message Text is ${message.text}
  </li>
</c:forEach>
于 2013-10-29T14:12:32.613 回答
1

假设您已经指定了 Spring Form taglib 指令,如下所示:

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

然后我认为使用错误标签的正确语法是:

<form:errors path="*" />
于 2013-10-29T08:43:53.750 回答