在Spring Portlet MVC中设置模型错误的正确方法

时间:2012-07-16 11:22:12

标签: spring-mvc liferay portlet

在我的MVC控制器中,我有一个带签名的处理程序方法:

public void myAction(ActionRequest request, ActionResponse response, Model model) {...}

在这种方法中,我检查一些提交的数据是否正常。如果它无效,我想设置一个错误。目前我这样做的方式很简单:

model.addAttribute("operationStatus", "error");
model.addAttribute("operationMessage", "a lot of things went wrong");

并在视图JSP中:

<c:if test="${requestScope.operationStatus == 'error'}">
    <div class="msg-error">${requestScope.operationMessage}</div>
</c:if>

当然,必须有一种更好的方法来处理Spring Portlet MVC中的错误。请注意,我需要在不同的地方显示错误消息,而不仅仅是<form>标记。

那我该如何处理错误?

1 个答案:

答案 0 :(得分:3)

如果您只定位Liferay,那么您可以使用SessionErrors类,以便执行以下操作:

SessionErrors.add(actionRequest, "some-error");

然后在你的JSP上你有:

<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<liferay-ui:error key="some-error" message="Your error message goes here!" />

您也可以使用异常执行此操作。看看我的回答here