在Web前端开发的时候,通常分页显示之后会有一个每页的消息列表,当我们对某一条消息进行修改时,就用到了更新操作。更新实际上非常简单,如果用页面跳转来实现的话只需两步servlet处理就可以实现,下面讲一下具体操作:
首先在一个消息列表页面中,当我们点击更新按钮时,需要显示这条消息的详细内容,然后我们对详细内容进行修改提交,再次在页面上显示就是更新后的内容。所以我们首先要显示更新之前的内容,这里用到的就是数据库的查询:
在Dao里我们对数据库的这条消息进行查询操作
public Mfrinfo findMfrinfoEach(String CSMC) {
Mfrinfo mfr=new Mfrinfo();
String select="SELECT * FROM MFRINFO WHERE CSMC=?";
List<Object> params=new ArrayList<Object>();
params.add(CSMC);
ResultSet rs=this.executeQuery(select, params);
try {
if(rs.next()){
mfr.setID(rs.getString("ID"));
mfr.setCSMC(rs.getString("CSMC"));
mfr.setKGYCP(rs.getString("KGYCP"));
mfr.setCSLXR(rs.getString("CSLXR"));
mfr.setCSLXDH(rs.getString("CSLXDH"));
mfr.setCSDZ(rs.getString("CSDZ"));
mfr.setCSYB(rs.getString("CSYB"));
mfr.setDLS(rs.getString("DLS"));
mfr.setDLSDZ(rs.getString("DLSDZ"));
mfr.setDLSYB(rs.getString("DLSYB"));
mfr.setDLSLXDH(rs.getString("DLSLXDH"));
mfr.setDLSLXR(rs.getString("DLSLXR"));
mfr.setSHFWS(rs.getString("SHFWS"));
mfr.setFWSDZ(rs.getString("FWSDZ"));
mfr.setFWSYB(rs.getString("FWSYB"));
mfr.setSHFWDH(rs.getString("SHFWDH"));
mfr.setBZ(rs.getString("BZ"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll();
}
return mfr;
}
然后在业务层调用这个方法即可,当然在servlet的doPost方法中从页面前端获得参数进行查找操作:
String CSMC=req.getParameter("CSMC");
Mfrinfo mfr=(Mfrinfo) mfrinfoBiz.searchMfrinfoEach(CSMC);
req.setAttribute("mfrinfo", mfr);
RequestDispatcher rd=req.getRequestDispatcher("/PMS_MFR/mfrinfoupdate.jsp");
rd.forward(req, resp);
然后获得的查询结果显示在前端的编辑更新的jsp中,再在这个jsp中对各项内容进行修改,并提交到servlet中:
<body>
<div id="title">
供应商修改
</div>
<div>
<form action="<%=request.getContextPath()%>/mfreditservlet.do?reqCode=updateMfrinfo" method="post">
<table border="1px " cellspacing="0" cellpadding="0" >
<%
Mfrinfo mfr=(Mfrinfo) request.getAttribute("mfrinfo");
if(mfr!=null){
%>
<tr>
<td class="topic">厂商代码</td>
<td colspan="3">
<input type="text" name="ID" id="ID" value="<%=mfr.getID()%>">
<span name="IDSpan" id="IDSpan"></span>
</td>
</tr>
<tr>
<td class="topic">厂商名称</td>
<td>
<input type="text" name="CSMC" id="CSMC" value="<%=mfr.getCSMC()%>">
<span id="CSMCSpan">*</span>
</td>
<td class="topic">代理商</td>
<td>
<input type="text" name="DLS" id="DLS" value="<%=mfr.getDLS()%>">
<span id="DLSSpan"></span>
</td>
</tr>
<tr>
<td class="topic">厂商地址</td>
<td>
<input type="text" name="CSDZ" id="CSDZ" value="<%=mfr.getCSDZ()%>">
<span id="CSDZSpan">*</span>
</td>
<td class="topic">代理商地址</td>
<td>
<input type="text" name="DLSDZ" id="DLSDZ" value="<%=mfr.getDLSDZ()%>">
<span id="DLSDZSpan"></span>
</td>
</tr>
<tr>
<td class="topic">厂商邮编</td>
<td>
<input type="text" name="CSYB" id="CSYB" value="<%=mfr.getCSYB()%>">
<span id="CSYBSpan">*</span>
</td>
<td class="topic">代理商邮编</td>
<td>
<input type="text" name="DLSYB" id="DLSYB" value="<%=mfr.getDLSYB()%>">
<span id="DLSYBSpan"></span>
</td>
</tr>
<tr>
<td class="topic">厂商联系电话</td>
<td>
<input type="text" name="CSLXDH" id="CSLXDH" value="<%=mfr.getCSLXDH()%>">
<span id="CSLXDHSpan">*</span>
</td>
<td class="topic">代理商联系电话</td>
<td>
<input type="text" name="DLSLXDH" id="DLSLXDH" value="<%=mfr.getDLSLXDH()%>">
<span id="DLSLXDHSpan"></span>
</td>
</tr>
<tr>
<td class="topic">厂商联系人</td>
<td>
<input type="text" name="CSLXR" id="CSLXR" value="<%=mfr.getCSLXR()%>">
<span id="CSLXRSpan">*</span>
</td>
<td class="topic">代理商联系人</td>
<td>
<input type="text" name="DLSLXR" id="DLSLXR" value="<%=mfr.getDLSLXR()%>">
<span id="DLSLXRSpan"></span>
</td>
</tr>
<tr>
<td class="topic">可供应产品</td>
<td colspan="3">
<textarea rows="2" cols="80" name="KGYCP" id="KGYCP"><%=mfr.getKGYCP()%></textarea>
<span id="KGHCPSpan">*</span>
</td>
</tr>
<tr>
<td class="topic">售后服务商</td>
<td>
<input type="text" name="SHFWS" id="SHFWS" value="<%=mfr.getSHFWS()%>">
<span id="SHFWSSpan"></span>
</td>
<td class="topic">服务商邮编</td>
<td>
<input type="text" name="FWSYB" id="FWSYB" value="<%=mfr.getFWSYB()%>">
<span id="FWSYBSpan"></span>
</td>
</tr>
<tr>
<td class="topic">服务商地址</td>
<td>
<input type="text" name="FWSDZ" id="FWSDZ" value="<%=mfr.getFWSDZ()%>">
<span id="FWSDZSpan"></span>
</td>
<td class="topic">售后服务电话</td>
<td>
<input type="text" name="SHFWDH" id="SHFWDH" value="<%=mfr.getSHFWDH()%>">
<span id="SHFWDHSpan"></span>
</td>
</tr>
<tr>
<td class="topic">备注</td>
<td colspan="3">
<textarea rows="2" cols="80" name="BZ" id="BZ"><%=mfr.getBZ()%></textarea>
</td>
</tr>
<% }%>
<tr>
<td class="buttons" colspan="4">
<input type="submit" value="保存" name="submit">
</td>
</tr>
</table>
</form>
</div>
</body>
在servlet中对更新后传过来的前端数据进行获取并调用后台业务层的更新方法对数据进行操作:
String ID=req.getParameter("ID");
String CSMC=req.getParameter("CSMC");
String DLS=req.getParameter("DLS");
String CSDZ=req.getParameter("CSDZ");
String DLSDZ=req.getParameter("DLSDZ");
String CSYB=req.getParameter("CSYB");
String DLSYB=req.getParameter("DLSYB");
String CSLXDH=req.getParameter("CSLXDH");
String DLSLXDH=req.getParameter("DLSLXDH");
String CSLXR=req.getParameter("CSLXR");
String DLSLXR=req.getParameter("DLSLXR");
String KGYCP=req.getParameter("KGYCP");
String SHFWS=req.getParameter("SHFWS");
String FWSYB=req.getParameter("FWSYB");
String FWSDZ=req.getParameter("FWSDZ");
String SHFWDH=req.getParameter("SHFWDH");
String BZ=req.getParameter("BZ");
Mfrinfo mfrinfo=new Mfrinfo(ID,CSMC,CSDZ,CSYB,CSLXDH,CSLXR,KGYCP,DLS,DLSDZ,DLSYB,DLSLXDH,DLSLXR,SHFWS,FWSDZ,FWSYB,SHFWDH,BZ);
mfrinfoBiz.updateMfrinfo(mfrinfo);
后台Dao里对数据更新的操作为:
public int updateMfrinfo(Mfrinfo mfrinfo) {
List<Object> params=new ArrayList<Object>();
String sql="UPDATE MFRINFO SET CSMC=?,CSDZ=?,CSYB=?,CSLXDH=?,CSLXR=?,KGYCP=?,DLS=?,DLSDZ=?,DLSYB=?,DLSLXDH=?,DLSLXR=?,SHFWS=?,FWSDZ=?,FWSYB=?,SHFWDH=?,BZ=? WHERE ID=?";
params.add(mfrinfo.getCSMC());
params.add(mfrinfo.getCSDZ());
params.add(mfrinfo.getCSYB());
params.add(mfrinfo.getCSLXDH());
params.add(mfrinfo.getCSLXR());
params.add(mfrinfo.getKGYCP());
params.add(mfrinfo.getDLS());
params.add(mfrinfo.getDLSDZ());
params.add(mfrinfo.getDLSYB());
params.add(mfrinfo.getDLSLXDH());
params.add(mfrinfo.getDLSLXR());
params.add(mfrinfo.getSHFWS());
params.add(mfrinfo.getFWSDZ());
params.add(mfrinfo.getFWSYB());
params.add(mfrinfo.getSHFWDH());
params.add(mfrinfo.getBZ());
params.add(mfrinfo.getID());
return this.executeUpdate(sql, params);
}
通过上面的几步操作我们就可以实现对数据的更新操作,实际上非常简单,但是我们处理这个问题的逻辑一定要清楚,知道每一步都要干什么很重要