makeorderform.jsp
来自「一个简单的购物网站,包括购物车的实现」· JSP 代码 · 共 58 行
JSP
58 行
<%@ page contentType="text/html;charset=GB2312" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="csai" uri="/WEB-INF/tld/csai.tld" %>
<%@ page isELIgnored="false"%>
<c:if test="${empty sessionScope.user_id}">
<c:redirect url="index.jsp"/>
</c:if>
<!------设置数据源------>
<sql:setDataSource
dataSource="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookstore,com.microsoft.jdbc.sqlserver.SQLServerDriver,sa,19871127"
var="sqlDS"/>
<!------生成订单------>
<!--生成订单的过程在同一个事务中-->
<!--======执行事务======-->
<c:catch var="error">
<sql:transaction dataSource="${sqlDS}">
<!--生成订单号-->
<c:set var="insertSQL"
value="insert into order_form(user_id) values(${sessionScope.user_id})"/>
<sql:update sql="${insertSQL}" var="infec"/>
<!--如果生成订单成功,将购物车中的商品放入订单中-->
<c:if test="${infec==1}">
<!--得到生成的订单号-->
<c:set var="selectSQL" value="
select max(order_form_id) as order_form_id
from order_form where user_id=${sessionScope.user_id}"/>
<sql:query sql="${selectSQL}" var="orderRS"/>
<c:if test="${orderRS.rowCount>=1}">
<c:forEach items="${orderRS.rowsByIndex}" var="order">
<c:set var="order_id" value="${order[0]}"/>
</c:forEach>
<!--将购物车中的商品放入订单中-->
<c:forEach items="${sessionScope.car.myGoods}" var="carbook">
<c:set var="book_id" value="${fn:substringBefore(carbook,'=')}"/>
<c:set var="book_count" value="${fn:substringAfter(carbook,'=')}"/>
<c:set var="insertSQL" value="
insert into order_form_book(order_form_id,book_id,book_count)
values(${order_id},${book_id},${book_count})"/>
<sql:update sql="${insertSQL}"/>
<!--清除购物车中的商品-->
<c:set var="car" scope="session" value="${null}"/>
</c:forEach>
</c:if>
</c:if>
</sql:transaction>
</c:catch>
<!--异常处理-->
<c:if test="${not empty error}">
<c:out value="${error}"/>
<a href="index.jsp">返回</a>
</c:if>
<c:if test="${empty error}">
<c:redirect url="viewOrderForm.jsp"/>
</c:if>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?