【问题标题】:how do i show error/info/fatal messages in jsp when i using spring-webflow with POJO action?当我将 spring-webflow 与 POJO 操作一起使用时,如何在 jsp 中显示错误/信息/致命消息?
【发布时间】:2013-11-08 01:21:46
【问题描述】:

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

【问题讨论】:

    标签: spring jsp spring-webflow


    【解决方案1】:

    在您的 JSP 文件中,尝试以下操作:

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

    【讨论】:

      【解决方案2】:

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

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

      那我认为使用errors标签的正确语法是:

      <form:errors path="*" />
      

      【讨论】:

        猜你喜欢
        • 2012-01-20
        • 2012-06-21
        • 2011-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        • 1970-01-01
        相关资源
        最近更新 更多