#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