How can an object be accessed from the ModelMap in jsp so that a method can be called on it? Currently I recieve this error:
Syntax error on token "$", delete this token
JSP
<body>
<% MenuWriter m = ${data.menus} %>
<%= m.getMenus()%>
</body>
Java
@Controller
@RequestMapping("/dashboard.htm")
@SessionAttributes("data")
public class DashBoardController {
@RequestMapping(method = RequestMethod.GET)
public String getPage(ModelMap model) {
String[] menus = { "user", "auth", "menu items", };
String[] files = { "menu", "item", "files", };
MenuWriter m = new MenuWriter(menus, files);
model.addAttribute("menus", m);
String[] atocs = { "array", "of", "String" };
model.addAttribute("user_atocs", atocs);
return "dashboard";
}
}
The
<% %>syntax is deprecated, and shouldn’t be used any more.The equivalent in modern JSP of your JSP fragment would be:
Obviously, that looks confusing, so you may want to consider renaming parts of your model for clarity.
Also, your annotation
does nothing here, since you have no entry in the
ModelMapwith the keydata. This is only useful if you want to keep the model data across the session, which it doesn’t seem you need to here.