首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >spring:在列表中使用时出现绑定错误

spring:在列表中使用时出现绑定错误
EN

Stack Overflow用户
提问于 2012-12-31 18:28:12
回答 4查看 1.5K关注 0票数 0

我有一个包含用户的列表。我正试着用JSP打印它,但有些地方我无法让它打印出来。获取此异常HTTP Status 500 - javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'users[0]' available as request attribute

JSP中的代码

代码语言:javascript
复制
<c:forEach items="${users}" var="user" varStatus="status">
   <spring:bind path="users[${status.index}].name">
      <c:out value="${status.value}" />
   </spring:bind>
</c:forEach>

控制器

代码语言:javascript
复制
ModelAndView modelAndView = new ModelAndView("go_some_JSP_page");
List<UserEntity> users = userManager.getAllObjects();
modelAndView.addObject("users", users);

顺便说一句,UserEntity有name字段。如果我删除绑定并尝试使用<c:out value="user.name" />打印user.name,它将打印该值

我在哪里做错了,我需要做什么?谢谢

下面的代码无法正常工作。我必须在字段@NumberFormat上调用格式化,所以我必须尝试使用status变量

代码语言:javascript
复制
<spring:bind path="user.name">
   <c:out value="${status.value}" />
</spring:bind>

获取此错误--> javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean name 'user' available as request attribute

因此添加了一个bean绑定,然后我得到了空表:(。我相信这是因为实例是空的。因此,这似乎不是一个正确的方法。

代码语言:javascript
复制
@ModelAttribute("user")
public UserEntity userEntityBinding() {
    return UserEntity.newInstance();
}

https://github.com/hth/StatusInvoke.git上有一个可以正常工作的代码

如果您在部署它时遇到任何问题,请告诉我。

这个问题已经解决了。感谢您的关注。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-03 09:19:26

调用@NumberFormat注释的正确答案是使用spring:eval expression标记

代码语言:javascript
复制
<spring:eval expression="user.balance" />

这将调用注释并执行注释中提到的格式化

票数 0
EN

Stack Overflow用户

发布于 2013-01-08 20:25:09

您可以尝试使用LazyList而不是简单的list。如果你想看一下这个例子,你可以参考我的一个question。在问题陈述中,我提到了如何使用LazyList。

希望这对你有帮助。干杯。

票数 1
EN

Stack Overflow用户

发布于 2012-12-31 18:52:56

如果返回了correct和list,则这是填充列表的正确方法

代码语言:javascript
复制
ModelAndView modelAndView = new ModelAndView("go_some_JSP_page");
List<UserEntity> users = userManager.getAllObjects();
modelAndView.addObject("users", users);

这是引用列表的正确方式

代码语言:javascript
复制
<c:forEach items="${users}" var="user" varStatus="status">
    <spring:bind path="user.name">
      <c:out value="${status.value}" />
   </spring:bind>
</c:forEach>

您的问题一定是出现在其他地方: name字段已明确填充,调用的jsp是否正确...上面的代码是正确的,应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14100402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档