2012-09-19 46 views
4

我有一个jsp页面,List<Object>作为@ModelAttribute。但是,页面中没有<form:form>标签。我正在做的是打印List的内容。如何在JSP中显示错误而不需要<form:form>

在我Controller.java,我做结合的错误:

result.rejectValue("", "NOT_LOGGED_IN", "You should Login first") ;

但因为我没有在我的jsp一种形式,我不能与访问错误:

<form:errors path="" /> <br/>

请告诉我如何访问错误(或者我做错了什么)。

回答

5

在你的控制器:

model.addAttribute("errors", result.getAllErrors()); 

在你的JSP:

<c:forEach items="${errors}" var="error"> 
    <%-- do want you want with ${error} --%> 
    <c:out value="${error.defaultMessage}" /> 
</c:forEach> 
+0

但我想给你JSTL''标签 – th3an0maly

+0

@ th3an0maly我明白你没”不想使用该标签。如果你想使用它,你需要一个''标签。你为什么不能用一个? – sp00m

+2

好问题。其实,我觉得有点晚了。现在我的页面中有一个“表格”。不管怎么说,多谢拉。 – th3an0maly

3

副全局错误是这样的:

result.reject("NOT_LOGGED_IN", "You should Login first") ; 

您可以显示JSP中的全局错误:

<form:errors cssClass="error" delimiter="&lt;p/&gt;" /> 
+0

这不起作用 – th3an0maly

+0

'result.rejectValue(“”,“NOT_LOGGED_IN”,“你应该先登录”);'也注册全局错误。我不认为问题出在那。 – th3an0maly

0

代码中的任何特定的错误 一套喜欢 -

model.addObject("errorMsg","username/password failed"); 

并显示在JSP这个错误是这样的:

<c:out value="${errorMsg}"/> 

这样你会得到你的JSP错误。

+0

我需要在您的模型中显示 – th3an0maly

+0

的'BindingResult'对象中的错误,将spring jsr 303验证。并在资源属性文件中放置字段和错误键值。并检查你的代码 - if(result.hasErrors()) –

0

有引用错误,如

,而不是

<form:form commandName="object"> 
    <form:errors path="field"/> 
</form:form> 

最好的方式