搭建框架:
jsp界面操作:
需有支付的状态(0,1),如果支付状态为未支付,在jsp页面设置为红色,已支付时,为蓝色:
支付状态:
<c:if test="${olf.paystate==0}">
<font color="red">未支付</font>
<!-- 在未支付状态后添加一个删除的连接,可删除订单,后面文章将提及 -->
<a href="DelOrderServlet?id=${olf.id}">删除</a>
</c:if>
<c:if test="${olf.paystate==1}">
<font color="blue">已支付</font>
</c:if>
<!-- 当订单状态为未支付时,跳转到PayServlet来实现在线支付的功能 -->
<div align="right">
<c:if test="${olf.paystate==0 }">
<a href="${pageContext.request.contextPath}/PayServlet?id=${olf.id}">在线支付</a>
</c:if>
</div>
PayServlet操作:
//获取页面传入的id值
String id=request.getParameter("id");
//创建新的订单对象
Order order=new Order();
//将id传入到订单编号中
order.setId(id);
//OrderService service = (OrderService) BasicFactory.getFactory().getInstance("OrderService");
//使用service调用payOrder方法,传入order对象
service.payOrder(order);
//如果执行成功后,返回页面
response.getWriter().write("支付成功,3秒钟回订单页面");
//3秒钟实现刷新,并跳转页面
response.setHeader("Refresh", "3;url="+request.getContextPath()+"/OrderListServlet");
OrdaoImpl中相关操作:
//定义sql语句
String sql="update orders set paystate=1 where id=?";
//使用QueryRunner获取链接资源
QueryRunner runner = new QueryRunner(DaoUtils.getSource());
try {
//用runner实现更新
runner.update(sql,order.getId());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new RuntimeException(e);
}