Is this kinda what you mean? Are you trying to add the search/edit/remove/add functionality to the jsp page? This could easily be captured with forms which submit back to the jsp plus a choose block to designate which operation is being performed. I bet this'll really irk those Struts/Maveric MVC folks out there with its use of the JSP page as both the Controller and View. But it is relatively easy to accomplish using JSTL without such "heavy" MVC frameworks.
Here is the example:
<%@page contentType="text/html"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<sql:setDataSource var="productDS"
url="jdbc:postgresql://localhost:5432/recruitment"
driver="org.postgresql.Driver"
user="scott" password="" />
<%-- conditional logic and sql manipulation --%>
<c:choose>
<c:when test="${request.operation == 'Add'}">
<sql:update>... sql tags to support the add request
</c:when>
<c:when test="${request.operation == 'Remove'}">
<sql:update>... sql tags to support the remove request
</c:when>
<c:when test="${request.operation == 'Edit'}">
<sql:update>... sql tags to support the edit request
</c:when>
</c:choose>
<%-- query to load the html page contents --%>
<c:choose>
<c:when test="${request.operation == 'Search'}">
<%-- EXPAND YOUR QUERY WITH SEARCH TERMS HERE --%>
<%-- use some conditional logic on the request parameters to deside how the query should be augmented
--%>
<sql:query var="productQuery" dataSource="${productDS}" >
....
</sql:query>
</c:when>
<c:otherwise>
<sql:query var="productQuery" dataSource="${productDS}" >
SELECT * FROM CD
</sql:query>
</c:otherwise>
</c:choose>
<%-- page with forms to add/edit/remove the contents --%>
<html>
<head><title>CD Catalog List</title></head>
<body>
<h1> CD Catalog List </h1>
<form method=get>
<TD><input type=text name=cdId value=""></TD>
<TD><input type=text name=cdTitle value=""></TD>
<TD><input type=text name=cdArtist value=""></TD>
<TD><input type=text name=cdCountry value=""></TD>
<TD><input type=text name=cdPrice value=""></TD>
<TD><input type=submit name=operation value="Search"></TD>
</form>
<TABLE border=1>
<TR>
<TH>ID</TH>
<TH>CD Title</TH>
<TH>Artist</TH>
<TH>Country</TH>
<TH>Price</TH>
<TH colspan=2>Command</TH>
</TR>
<c:forEach var="row" items="${productQuery.rows}">
<TR>
<form method=get>
<TD><input type=text name=cdId value="<c:out value='${row.ID}'/>"></TD>
<TD><input type=text name=cdTitle value="<c:out value='${row.CDTITLE}'/>"></TD>
<TD><input type=text name=cdArtist value="<c:out value='${row.ARTIST}'/>"></TD>
<TD><input type=text name=cdCountry value="<c:out value='${row.COUNTRY}'/>"></TD>
<TD><input type=text name=cdPrice value="<c:out value='${row.PRICE}'/>"></TD>
<TD><input type=submit name=operation value="Edit"></TD>
</form>
<TD>
<form method=get>
<input type=hidden name=cdId value="<c:out value='${row.ID}'/>">
<input type=submit name=operation value="Remove">
</form>
</TD>
</TR>
</c:forEach>
<TR><TD>Add new entry</TD></TR>
<TR>
<form method=get>
<TD><input type=text name=cdId value="..."></TD>
<TD><input type=text name=cdTitle value="..."></TD>
<TD><input type=text name=cdArtist value="..."></TD>
<TD><input type=text name=cdCountry value="..."></TD>
<TD><input type=text name=cdPrice value="..."></TD>
<TD colspan=2><input type=submit name=operation value="Add"></TD>
</form>
</TR>
</TABLE>
</body>
</html>
If you want to encapsulate the functions for adding/removing/editing
the content and not have them in this "View/Controller", you could
include them from separate JSP's or Servlets. or likewise submit the
forms directly to those JSP's or Servlets and then redirect back to
this jsp once the work was done.
It stays pretty independent and light without too much dependency on
any particular framework other than the JSP/JSTL tags. Which results in
less research and development effort to accomplish the same task. All
you need to know is JSP/JSTL.
-Mark
Eddie Barna wrote:
You can pass the value from your search form to the page which you have
listed in your email. For example: You have a search form with a text box
titled search
Here's what the page that queries the db would look like now
<sql:query var="productQuery" dataSource="${productDS}" ><sql:param value="${param.search}"/>
SELECT * FROM CD WHERE CDTITLE = ?
</sql:query>You can also expand on this by using the OR statement in your query. For
example:
<sql:query var="productQuery" dataSource="${productDS}" ><sql:param value="${param.search}"/>
SELECT * FROM CD WHERE CDTITLE = ? OR ARTIST = ?
<sql:param value="${param.search}"/>
</sql:query>For every condition in your query you must add a <sql;param/> tag.
Hope this helps. I really do recomend that you get Shawn Bayern's book
titled JSTL in Action. It explains all this in great detail, plus
everything else.
----- Original Message -----
From: "Scott Taylor" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 14, 2003 9:31 AM
Subject: Tag List
I am trying to find a list of tags to help me modify the CD Shop Cart webvalue="${row.PRICE}"/>">
application from Sun One.
For example, how do I insert tags that provide a search form (and entry
form) rather than simply list everything.
Here is what the code looks like so far:
<%@page contentType="text/html"%>
<html>
<head><title>CD Catalog List</title></head>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<body>
<h1> CD Catalog List </h1>
<sql:setDataSource var="productDS"
url="jdbc:postgresql://localhost:5432/recruitment"
driver="org.postgresql.Driver"
user="scott" password="" />
<sql:query var="productQuery" dataSource="${productDS}" >
SELECT * FROM CD
</sql:query>
<TABLE border=1>
<TR>
<TH>ID</TH>
<TH>CD Title</TH>
<TH>Artist</TH>
<TH>Country</TH>
<TH>Price</TH>
</TR>
<c:forEach var="row" items="${productQuery.rows}">
<TR>
<TD><c:out value="${row.ID}"/></TD>
<TD><c:out value="${row.CDTITLE}"/></TD>
<TD><c:out value="${row.ARTIST}"/></TD>
<TD><c:out value="${row.COUNTRY}"/></TD>
<TD><c:out value="${row.PRICE}"/></TD>
<TD>
<form method=get action="ShopCart.jsp">
<input type=hidden name=cdId value="<c:out value="${row.ID}"/>">
<input type=hidden name=cdTitle value="<c:out
value="${row.CDTITLE}"/>">
<input type=hidden name=cdPrice value="<c:out
<input type=submit name=operation value=Add>
</form>
</TD>
</TR>
</c:forEach>
</TABLE>
</body>
</html>
Regards
Scott
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
