Using a Request Parameter as an Index
A link to
a description page for each product
is generated using the
<c:forEach>
action in
the main page, shown in Example 10-6. The link
includes the request parameter id
, specifying the
product to display information about. When the user clicks on one of
the links, the page shown in Example 10-7 is invoked.
<%@ page language="java" contentType="text/html" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <html> <head> <title>Product Description</title> </head> <body bgcolor="white"> <jsp:useBean id="catalog" scope="application" class="com.ora.jsp.beans.shopping.CatalogBean" /> <%-- Get the specified ProductBean from the catalog --%> <c:set var="product" value="${catalog.productsById[param.id]}" /> <h1><${fn:escapeXml(product.name)}</h1> ${fn:escapeXml(product.descr)} <p> <c:url var="addtocartURL" value="addtocart.jsp"> <c:param name="id" value="${product.id}" /> </c:url> <a href="${addtocartURL}"> Add this book to the shopping cart</a> </body> </html>
A <jsp:useBean>
action at the top of Example 10-7 makes the catalog
bean
available to the page. Since the same action is used in the
catalog.jsp page to save the catalog bean in the application scope, it may seem redundant to have it in this page as well. In the normal case, it is. But users may bookmark a page for a specific product and go directly ...
Get JavaServer Pages, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.