我在这里使用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的taglib没有工作吗?我试过<spring:error path="*"/>但什么也没发生。
发布于 2013-10-29 22:12:33
在您的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-29 16:43:54
假设您已经按如下方式指定了Spring Form taglib指令:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>然后我认为使用error标签的正确语法是:
<form:errors path="*" />https://stackoverflow.com/questions/19648882
复制相似问题