/ / Wiązanie danych modelu do wyświetlenia - Spring - Java, Spring, Spring-Mvc, Model-View-Controller, Spring-Boot

Wiążące dane modelu do obejrzenia - Spring - java, spring, spring-mvc, model-view-controller, spring-boot

Nie jestem w stanie powiązać danych w modelu z widokiem. Używam wiosennego rozruchu. W tej chwili działa tak:

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

To pozwoliło mi uzyskać dostęp do atrybutu modelu za pomocą

<c:forEach items="${members}" var="member" varStatus="memberStatus">
<tr>
<td>${member.id}</td>
<td>${member.firstName}</td>
<td>${member.lastName}</td>
</tr>
</c:forEach>

Próbuję go uruchomić, zwracając ciąg znaków zamiast ModelAndView. Coś takiego:

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

Nie jestem pewien co do używania @ModelAttribute po stronie java lub commandName w jsp. Czy to coś, na co muszę spojrzeć? Czy ktoś może oświecić, co się dzieje?

Dodawanie kodu kontrolera:

@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;
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Obiekt do renderowania JSP należy dodać jako Model atrybut:

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

0 dla odpowiedzi nr 2

Twój pierwszy sposób powinien działać. Jeśli nie, sprawdź, czy masz na swojej stronie JSP deklarację @taglib, na przykład:

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

Jeśli zwrócisz String (jak w drugim przykładzie: „Members / MembersList”) Wiosna spróbuje znaleźć i wyświetlić stronę JSP o nazwie MembersList.jsp w lokalizacji „Members”. W takim przypadku parametry nie zostaną przekazane do JSP.