7.面我们讲最后一个操作 修改的操作
在讲修改之前 我们先讲一个知识点
表单调用的通常是doPost方法 超链接通常调用的是doGet方法
操作如何在同一个方法 (doGet中) 进行区分 type
OrderDao orderDao=new OrderDao();
String type=req.getParameter("type");
if(type.equals("del"))
{
//删除
String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4
if(id!=null) //判断id是否有值 如果有就删除
{
int uid=Integer.parseInt(id);
orderDao.deleteOrder(uid);
}
//删除完了再查看
//2 调用Dao返回一个集合 存到一个公共对象里面
ArrayList<OrderInfo> orders=orderDao.findOrders();
req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问
req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面
}
//查看
if(type.equals("sel"))
{
ArrayList<OrderInfo> orders=orderDao.findOrders();
req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问
req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面
}
点击重新部署
修改操作比较简单 分为以下两步
把order_add.jsp中的form复制到modify修改页面
<form name="frm" action="/jtxy_web_war_exploded/OrderInfoServlet" method="post">
<table style="width:480px; ">
<tr>
<th>
新增订单</th>
</tr>
<tr>
<td>
发送地</td>
<td style="text-align:left; ">
<!--name指的是文本名称 可以随便起 这里与数据库一致-->
<input name="send_address" type="text" size="12">
</td>
</tr>
<tr>
<td>
收件地</td>
<td style="text-align:left; ">
<select id="s1" name="pre"><option>省份</option></select>
<select id="s2" name="city"><option>地级市</option></select>
<select id="s3" name="region"><option>市、县级市、县</option></select>
</td>
</tr>
<tr>
<td>
车辆状态
</td>
<td style="text-align:left; ">
<input name="veh_state" type="text">
</td>
</tr>
<tr>
<td>
所属配送点
</td>
<td style="text-align:left; ">
<select name="dep">
<option value="0">
财务部
</option>
<option value="1">
人事部
</option>
<option value="2">
后勤部
</option>
<option value="3">
业务部
</option>
</select>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="button1" value="提交">
<input type="reset" name="button2" value="重置">
</td>
</tr>
</table>
</form>
在order_modify.jsp中输入以下java代码
将所需信息添加上value值 如发送地 收件地 车辆状态等等
在OrderDao中添加一句话
点击重新部署 查看订单 点击修改 可以看到已经有相应的操作响应
那么 点击修改以后如何完成修改的操作呢
首先 在order_add.jsp中传递一个隐藏的值
然后 先在order_modify.jsp中输入以下java代码
在order_modify.jsp中也传递两个隐藏的值
在OrederInfoServlet.java程序的doGet方法中输入以下代码
OrderDao orderDao=new OrderDao();
String type=req.getParameter("type");
if(type.equals("del"))
{
//删除
String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4
if(id!=null) //判断id是否有值 如果有就删除
{
int uid=Integer.parseInt(id);
orderDao.deleteOrder(uid);
}
//删除完了再查看
//2 调用Dao返回一个集合 存到一个公共对象里面
ArrayList<OrderInfo> orders=orderDao.findOrders();
req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问
req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面
}
//查看
if(type.equals("sel"))
{
ArrayList<OrderInfo> orders=orderDao.findOrders();
req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问
req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面
}
//修改
if(type.equals("one"))
{
String id=req.getParameter("id");
int oid=Integer.parseInt(id);
OrderInfo order = orderDao.findOrderById(oid);
req.setAttribute("order",order);
req.getRequestDispatcher("order/order_modify.jsp").forward(req,resp);// 显示list页面
}
在OrederInfoServlet.java程序的doPost方法中输入以下代码
req.setCharacterEncoding("UTF-8"); //处理乱码
String type=req.getParameter("type");
if(type.equals("add"))
{
String send_address=req.getParameter("send_address");
String pre=req.getParameter("pre");
String city=req.getParameter("city");
String region=req.getParameter("region");
String veh_state=req.getParameter("veh_state");
String trans_point=req.getParameter("trans_point");
OrderInfo orderInfo=new OrderInfo();
orderInfo.setAcc_address(pre+city+region);
orderInfo.setSend_address(send_address);
orderInfo.setVeh_state(Integer.parseInt(veh_state));//Integer.parseInt() 将字符串转换成整数
orderInfo.setTrans_point(trans_point);
OrderDao orderDao=new OrderDao();
orderDao.addOrder(orderInfo);
System.out.println("========");
//显示order文件夹下的order_add.jsp页面
req.getRequestDispatcher("order/order_add.jsp").forward(req,resp);
}
if(type.equals("modify"))
{
String id=req.getParameter("id");
String send_address=req.getParameter("send_address");
String pre=req.getParameter("pre");
String city=req.getParameter("city");
String region=req.getParameter("region");
String veh_state=req.getParameter("veh_state");
String trans_point=req.getParameter("trans_point");
OrderInfo orderInfo=new OrderInfo();
orderInfo.setAcc_address(pre+city+region);
orderInfo.setSend_address(send_address);
orderInfo.setVeh_state(Integer.parseInt(veh_state));//Integer.parseInt() 将字符串转换成整数
orderInfo.setTrans_point(trans_point);
orderInfo.setOrid(Integer.parseInt(id));
OrderDao orderDao=new OrderDao();
orderDao.updateOrder(orderInfo);
System.out.println("========");
//显示order文件夹下的order_add.jsp页面
ArrayList<OrderInfo> orders=orderDao.findOrders();
req.setAttribute("list",orders); //把查询结果存入req 中 req在order_list.jsp中能够被访问
req.getRequestDispatcher("order/order_list.jsp").forward(req,resp); //显示页面
}
}
点击重新部署 打开..::翔速物流::..网页 点击查看订单 修改
这里我们将山东省潍坊市修改为山东济南 看一下效果如何
点击提交 修改成功
同理 我们也可以做一下对User的网页修改
首先 在同一个方法 (doGet中)把对网页的不同的操作进行一下区分 添加
?type语句 先在list_nav.jsp中的查看用户中添加一个区分
然后在user_list.jsp中添加区分 由于前面已经有?号 这里我们用&号
然后 我们在UserInfoServlet中的doGet方法中输入修改操作的代码
UserDao userDao=new UserDao();
String type=req.getParameter("type");
if(type.equals("del")){
String id=req.getParameter("id"); //获取页面传递过来的id 1 2 3 4
if(id!=null) //判断id是否有值 如果有就删除
{
int uid=Integer.parseInt(id);
userDao.deleteUser(uid);
}
ArrayList<UserInfo> users=userDao.findUsers();
req.setAttribute("list",users);
req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);
}
if(type.equals("sel")){
ArrayList<UserInfo> users=userDao.findUsers();
req.setAttribute("list",users);
req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);
}
//修改
if(type.equals("one"))
{
String id=req.getParameter("id");
int oid=Integer.parseInt(id);
UserInfo user=userDao.findUserById(oid);
req.setAttribute("user",user);
req.getRequestDispatcher("user/user_modify.jsp").forward(req,resp);//显示list页面
}
把user_add.jsp中的form复制到modify修改页面
然后在user_modify.jsp中输入以下代码
<%
UserInfo userInfo=(UserInfo)request.getAttribute("user");
%>
在相应的数据后面添加value的值
然后 我们去UserDao中的findUserById添加以下一行代码
此时 点击一下重新部署 我们将鼠标放到修改那里 就可以看到相应的代码出现了
下面 我们继续完成修改操作 我们添加一下隐藏
首先 在order_add.jsp中传递一个隐藏的值
然后 先在order_modify.jsp中输入以下java代码 添加隐藏
最后 我们在OrederInfoServlet.java程序的doPost方法中输入以下代码
req.setCharacterEncoding("UTF-8");
String type=req.getParameter("type");
if(type.equals("add"))
{
String user_name=req.getParameter("user_name");
String user_pwd=req.getParameter("user_pwd");
String user_rep=req.getParameter("user_rep");
String user_role=req.getParameter("user_role");
String user_address=req.getParameter("user_address");
String user_tell=req.getParameter("user_tell");
UserInfo userInfo=new UserInfo();
userInfo.setUser_name(user_name);
userInfo.setUser_pwd(user_pwd);
userInfo.setUser_pwd(user_rep);
userInfo.setUser_role(user_role);
userInfo.setUser_address(user_address);
userInfo.setUser_tell(user_tell);
UserDao userDao=new UserDao();
userDao.addUser(userInfo);
System.out.println("========");
req.getRequestDispatcher("user/user_add.jsp").forward(req,resp);
}
if(type.equals("modify"))
{
String id=req.getParameter("id");
String user_name=req.getParameter("user_name");
String user_pwd=req.getParameter("user_pwd");
String user_rep=req.getParameter("user_rep");
String user_role=req.getParameter("user_role");
String user_address=req.getParameter("user_address");
String user_tell=req.getParameter("user_tell");
UserInfo userInfo=new UserInfo();
userInfo.setUser_name(user_name);
userInfo.setUser_pwd(user_pwd);
userInfo.setUser_pwd(user_rep);
userInfo.setUser_role(user_role);
userInfo.setUser_address(user_address);
userInfo.setUser_tell(user_tell);
userInfo.setUser_id(Integer.parseInt(id));
UserDao userDao=new UserDao();
userDao.updateUser(userInfo);
System.out.println("========");
ArrayList<UserInfo> users=userDao.findUsers();
req.setAttribute("list",users);
req.getRequestDispatcher("user/user_list.jsp").forward(req,resp);
}
}
点击重新部署
我们试一下将济南市 修改为济南市1
点击修改 修改成功
只会幻想而不行动的人 永远也体会不到收获果实时的喜悦