Передача объекта с помощью ModelAndView, затем синтаксический анализ с помощью JSTL

#jsp #spring-mvc #jstl

#jsp #spring-mvc #jstl

Вопрос:

Кажется, что это должно сработать, но я просто не могу понять, почему, надеясь, что свежий взгляд сможет заметить то, что должно быть чем-то очень очевидным…

Я передаю объект со своего контроллера в свой jsp-файл, но попытка проанализировать объект с помощью EL просто не сработает, хотя он работает как скриптлет, это сводит меня с ума 🙂

Использование Spring 3.0 MVC

Модель:

 public class Table {

private String mId;
private ArrayList<Row> mRows;

public String getId() {
    return mId;
}
  

Контроллер:

 Table table = new Table();
table.setId("test");

ModelAndView mav = new ModelAndView();
mav.addObject("table",table);
mav.setViewName("report");

return mav;
  

JSP-файл:

 <!--  this works -->

<%
Table table = (Table)request.getAttribute("table");
System.out.println(table.getId());
%>

<!--  this does not work -->

${table.getId}
  

Ошибка:

 org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/report.jsp at line 33

30: 
31:     <!--  this dows not work -->
32: 
33:     ${table.getId}
34: 
35: </body>
36: </html>

javax.el.PropertyNotFoundException: Property 'getId' not found on type com.platform.server.portal.model.Table
  

Ответ №1:

измените private String mId; на private String id;
и
${table.getId} Для ${table.id}

вам не нужно и не может использовать подобный метод доступа.

если это должно быть mId, тогда измените

public String getId() Для public String getMid()

и

${table.getId} Для ${table.mId}

Комментарии:

1. Забавно, что если бы @Telegard сделал $ {table}, кто бы увидел что-то подозрительное: P