defaultMenu.jsp
Code:
lt;%@taglib prefix=quot;cquot; uri=quot;jstl/core_rtquot;%gt;
lt;%@taglib prefix=quot;cquot; uri=quot;jstl/core_rtquot;%gt;
lt;c:forEach items=quot;${sampleList}quot; var=quot;menuquot;gt;
lt;ulgt;
lt;ligt;${menu.link}lt;/ligt;
lt;c:set var=quot;sublistquot; value=quot;menu.submenuquot; /gt;
lt;ulgt;
lt;c:forEach items=quot;sublistquot; var=quot;submenuquot;gt;
lt;ligt;${submenu.link}lt;/ligt;
lt;/c:forEachgt;
lt;/ulgt;
lt;/ulgt;
lt;/c:forEachgt;
MenuController
Code:
protected ModelAndView handleRequestInternal(fromServletRequest request,
fromServletResponse response) throws Exception {
logger.info(quot;Initializing Menuquot;);
Listlt;Menugt; sampleList = new ArrayListlt;Menugt;();
Listlt;SubMenugt; subMenuList = new ArrayListlt;SubMenugt;();
for (int i = 0; i lt; 15; i++) {
Menu menu = new Menu();
menu.setLink(quot;Menu quot; + i);
for (int x = 0; x lt; 10; x++) {
SubMenu subMenu = new SubMenu();
subMenu.setLink(quot;SubMenu quot; + x);
}
menu.setSubmenu(subMenuList);
sampleList.add(menu);
}
return new ModelAndView(quot;defaultMenuquot;, quot;sampleListquot;, sampleList);
}
Menu.java
Code:
public class Menu{
private String link;
private Listlt;SubMenugt; submenu;
public String getLink() {
return link;
}
public Listlt;SubMenugt; getSubmenu() {
return submenu;
}
public void setLink(String link) {
this.link = link;
}
public void setSubmenu(Listlt;SubMenugt; submenu) {
this.submenu = submenu;
}
}
SubMenu.java
Code:
public class SubMenu extends BaseModel {
private String link;
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
}
How do I access a List inside another list in Spring? I would like to have the effect similar below
HTML Code:
lt;ulgt;
lt;ligt;Menu 0lt;/ligt;
lt;ulgt;
lt;ligt;SubMenu 0lt;/ligt;
lt;ligt;SubMenu 1lt;/ligt;
lt;ligt;SubMenu 2lt;/ligt;
lt;ligt;SubMenu 3lt;/ligt;
lt;ligt;SubMenu 4lt;/ligt;
lt;ligt;SubMenu 5lt;/ligt;
lt;ligt;SubMenu 6lt;/ligt;
lt;ligt;SubMenu 7lt;/ligt;
lt;ligt;SubMenu 8lt;/ligt;
lt;ligt;SubMenu 9lt;/ligt;
lt;/ulgt;
lt;/ulgt;
However, I am getting an error
Code:
javax.el.PropertyNotFoundException: Property 'link' not found on type java.lang.String
javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
javax.el.BeanELResolver.property(BeanELResolver.java:279)
javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
org.apache.el.parser.AstValue.getValue(AstValue.java:118)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
org.apache.jsp.pages.template.tiles.defaultMenu_jsp._jspx_meth_c_005fforEach_005f1(defaultMenu_jsp.java:168)
org.apache.jsp.pages.template.tiles.defaultMenu_jsp._jspx_meth_c_005fforEach_005f0(defaultMenu_jsp.java:104)
org.apache.jsp.pages.template.tiles.defaultMenu_jsp._jspService(defaultMenu_jsp.java:62)
org.apache.jasper.runtime.fromJspBase.service(fromJspBase.java:70)
javax.servlet.from.fromServlet.service(fromServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.from.fromServlet.service(fromServlet.java:717)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
org..web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:236)
org..web.servlet.view.AbstractView.render(AbstractView.java:257)
org..web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183)
org..web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902)
org..web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org..web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org..web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.from.fromServlet.service(fromServlet.java:617)
javax.servlet.from.fromServlet.service(fromServlet.java:717)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
If I remove the inner lt;c:forEachgt;, it works fine, however, it only iterates the Menu part.
raseryu,
Not sure what's going on, but have tried using a different taglib declaration?
For 2.4/2.5:Code:
lt;%@taglib prefix=quot;cquot; uri=quot;jsp/jstl/corequot; %gt;
For 2.3:
Code:
lt;%@taglib prefix=quot;cquot; uri=quot;jsp/corequot; %gt;
instead ofCode:
lt;%@taglib prefix=quot;cquot; uri=quot;jstl/core_rtquot;%gt;
AFAIK, using the *_rt taglibs is not recommended.
Hope that helps, |