Էջի իմ doGet-ում ես տեղադրում եմ որոշ լռելյայն ատրիբուտներ:
private static final CategoryFactory cf = CategoryFactory.getInstance();
public static void setupHeader(HttpServletRequest req) {
ArrayList<String> catagories = cf.getPrimaryCategories();
Map<String, ArrayList<String>> categoryMap = cf.getCategoryMap();
User user = UserUtils.getUserSession(req);
req.setAttribute("catagories", catagories);
req.setAttribute("categoryMap", categoryMap);
req.setAttribute("isAdmin", UserUtils.isAdmin(user));
if (user != null) {
req.setAttribute("orderCount", user.getOrderCount(false));
req.setAttribute("unreadMessageCount", user.getUnreadMessageCount());
req.setAttribute("cartTotal", user.getShoppingCart().getTotal());
}
}
Այնուհետև իմ JSP էջում ես փորձում եմ աշխատել «Map» կատեգորիայի հետ՝ հիմնվելով այն կատեգորիաների վրա, որոնք Քարտեզի բանալիներն են:
<c:forEach var="cata" items="${catagories}">
<li class="dropdown-submenu"><a tabindex="-1" href="#"><c:out value="${cata}" /></a>
<ul class="dropdown-menu" role="menu">
<c:forEach var="secCategories" items="${categoryMap['cata']}">
<c:forEach var="second" items="${secCategories}">
<li role="presentation"><a role="menuitem"
href="/browse?type="${fn:replace(second, ' ','+')}"><c:out
value="${second}" /></a></li>
</c:forEach>
</c:forEach>
</ul></li>
</c:forEach>
Իմ ստացած սխալն այն է
ԶԳՈՒՇԱՑՈՒՄ. Տեղադրված է javax.servlet.ServletException՝ javax.servlet.jsp.JspException՝ javax.el.PropertyNotFoundException. Չհաջողվեց գտնել հատկություն [Aerial & Lifting Equipment դասի java.lang.String՝ javax.NotFoundFoundException։ սեփականություն [Aerial & Lifting Equipment in class java.lang.String
Որտեղ «[Aerial & Lifting Equipment»-ը փոփոխականների կատեգորիաներից առաջին բանալին է և դրված է որպես նոր փոփոխական ${cata}: Քանի որ սա չի աշխատում, ես ինչ-որ բան բացակայում եմ, թե ինչպես ճիշտ փոխանցել դինամիկ բանալին:
ԼՈՒԾՈՒՄ
Սա շտկեց իմ խնդիրը, ես սահմանեցի ատրիբուտների տեսակները, որոնք նախկինում մոռացել էի, և հեշտ օգտագործման համար ես փոխեցի ArrayList-ը տողի[]:
<%@attribute name="user" required="true" type="com.entity.User"%>
<%@attribute name="catagories" required="true" type="java.lang.String[]"%>
<%@attribute name="categoryMap" required="true" type="java.util.Map"%>
<c:forEach var="cata" items="${catagories}">
<li class="dropdown-submenu"><a tabindex="-1" href="#"><c:out value="${cata}" /></a>
<ul class="dropdown-menu" role="menu">
<c:forEach var="secCategories" items="${categoryMap[cata]}">
<c:forEach var="second" items="${secCategories}">
<li role="presentation"><a role="menuitem"
href="/browse?type="${fn:replace(second, ' ','+')}"><c:out
value="${second}" /></a></li>
</c:forEach>
</c:forEach>
</ul></li>
</c:forEach>