在我的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>
标记。
那我该如何处理错误?
答案 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。