将模型数据绑定到视图 - Spring

时间:2017-05-24 15:58:23

标签: java spring spring-mvc model-view-controller spring-boot

我无法将模型中的数据绑定到视图中。我正在使用弹簧靴。目前我让它像这样工作:

@RequestMapping("/members")
public ModelAndView getMembers() {
    List<Member> members = memberDao.getMembers();
    ModelAndView model = new ModelAndView("member/membersList");
    model.addObject("members", members);
    return model;
}

这让我可以使用

访问模型属性
<c:forEach items="${members}" var="member" varStatus="memberStatus">
  <tr>
    <td>${member.id}</td>
    <td>${member.firstName}</td>
    <td>${member.lastName}</td>
  </tr>
</c:forEach>

我试图通过返回String而不是ModelAndView来使其工作。像这样:

@RequestMapping("/members")
public String getMembers(ModelAndView model) {
    List<Member> members = memberDao.getMembers();
    model.addObject("members", members);
    return "member/membersList";
}

我不太确定在java端使用@ModelAttribute或在jsp中使用commandName。这是我需要看的东西吗?有人可以指教出了什么问题吗?

添加控制器代码:

@Controller
public class MemberController {

@Autowired
private MemberDAO memberDao;

@RequestMapping("/members")
public ModelAndView getMembers() {
    List<Member> members = memberDao.getMembers();
    ModelAndView model = new ModelAndView("member/membersList");
    model.addObject("members", members);
    return model;
}
}

2 个答案:

答案 0 :(得分:0)

要在JSP上呈现的对象应添加为Model属性:

@RequestMapping("/members")
public String getMembers(Model model) {
    List<Member> members = memberDao.getMembers();
    model.addAttribute("members", members);
    return "member/membersList";
}

答案 1 :(得分:0)

你的第一种方式应该有效。如果没有,请检查JSP中是否有@taglib声明,例如:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

如果你返回String(如你的第二个例子:&#34; members / membersList&#34;),Spring会尝试查找并显示名为membersList.jsp的JSP页面&#34; members&#34 ;地点。在这种情况下,参数不会传递给JSP。