王朝网络
分享
 
 
 

Structs中:删除功能的实现

王朝java/jsp·作者佚名  2006-01-10
宽屏版  字体: |||超大  

Structs中:删除功能的实现

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionMapping;

/**

* <strong>DeleteForm</strong> handles the form

* that the user will use to search the database.

*/

public final class DeleteForm extends ActionForm {

private String name = null;

private String phone = null;

private String address = null;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public void reset(ActionMapping mapping, HttpServletRequest request) {

this.name = null;

this.phone = null;

this.address=null;

}

public ActionErrors validate(ActionMapping mapping,

HttpServletRequest request) {

ActionErrors errors = new ActionErrors();

if (

((name == null) || (name.length() < 1))

&&((phone == null)|| (phone.length() < 1))

&&((address == null) || (address.length() < 1))

)

errors.add("search", new ActionMessage("error.searchcriteria.required"));

return errors;

}

}

Action 文件

import java.io.IOException;

import java.util.Locale;

import java.util.Properties;

import java.util.ResourceBundle;

import java.util.MissingResourceException;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionServlet;

import org.apache.struts.util.MessageResources;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import addressbook.Constants;

import addressbook.forms.DeleteForm;

import addressbook.model.AddressBookBean;

/**

* <strong>DeleteAction</strong> will take the search parameters

* specified by the user and create the Sql statement to be used

* by the appropriate forward.

*/

public final class DeleteAction extends AbstActionBase {

private Log log =

LogFactory.getLog(this.getClass().getName());

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception {

Locale locale = getLocale(request);

MessageResources messages = getResources(request);

ActionMessages errors = new ActionMessages();

String name = ((DeleteForm) form).getName();

String phone = ((DeleteForm) form).getPhone();

String address=((DeleteForm)form).getAddress();

if (!errors.isEmpty()) {

saveErrors(request, errors);

return (new ActionForward(mapping.getInput()));

}

String strSql = new String("DELETE FROM " + Constants.TABLENAME + " WHERE ");

/*

if (!name.equals(""))

strSql = strSql + "name LIKE '"+ name +"%' AND";

if (!phone.equals(""))

strSql = strSql + " phone LIKE '"+ phone +"%' AND";

if (!address.equals(""))

strSql = strSql + " address LIKE '"+ address +"%'";

else

strSql = strSql.substring(0,strSql.length()-3);

strSql = strSql + "ORDER by ID";

*/

strSql = strSql + "name='" + name + "'";

strSql = strSql.substring(0,strSql.length());

try

{

AddressBookBean bean=new AddressBookBean(name,phone,address);

bean.delete(strSql);

}

catch(Exception ex)

{

ex.printStackTrace(System.out);

errors.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("error.delete.failed"));

}

HttpSession session = request.getSession();

if (log.isDebugEnabled()) {

log.debug("SearchAction session = " + session);

log.debug("SearchAction strSql = " + strSql);

}

session.setAttribute(Constants.SQLSTMT_KEY, strSql);

ActionMessages actionMessages = new ActionMessages();

actionMessages.add(ActionMessages.GLOBAL_MESSAGE,

new ActionMessage("record.Deleted"));

saveMessages(request,actionMessages);

// return (mapping.findForward(Constants.FORWARD_CONFIRMATION));

return (mapping.findForward(Constants.FORWARD_SUCCESS));

}

}

模型文件:

import java.sql.*;

import java.util.*;

import addressbook.Constants;

public class AddressBookBean {

String name;

String phone;

String address;

public AddressBookBean() {

}

public AddressBookBean(String name,String phone,String address) {

this.name=name;

this.phone=phone;

this.address=address;

}

public String getName(){

return name;

}

public String getPhone(){

return phone;

}

public String getAddress(){

return address;

}

public void setName(String name){

this.name=name;

}

public void setPhone(String phone){

this.phone=phone;

}

public void setAddress(String address){

this.address=address;

}

public void insert()throws Exception{

Connection con= DbUtil.connectToDb();

PreparedStatement pStmt=null;

try{

pStmt=con.prepareStatement("INSERT INTO " + Constants.TABLENAME +

" (name,phone,address)"+

" values(?,?,?)");

con.setAutoCommit(false);

pStmt.setString(1,name);

pStmt.setString(2,phone);

pStmt.setString(3,address);

int j=pStmt.executeUpdate();

con.commit();

}

catch(Exception ex)

{

try{

con.rollback();

}catch(SQLException sqlex){

sqlex.printStackTrace(System.out);

}

throw ex;

}finally{

try{

pStmt.close();

con.close();

}catch(Exception e){e.printStackTrace();}

}

}

public static Vector delete(String strSql)throws Exception{

Vector addressbookBeans=new Vector();

Connection con= DbUtil.connectToDb();

PreparedStatement pStmt=null;

ResultSet rs=null;

try{

pStmt=con.prepareStatement(strSql);

con.setAutoCommit(false);

pStmt.executeUpdate();

con.commit();

rs=pStmt.executeQuery();

while(rs.next())

addressbookBeans.add(new AddressBookBean(

rs.getString("NAME"),rs.getString("PHONE"),rs.getString("ADDRESS")));

return addressbookBeans;

}finally{

try{

rs.close();

pStmt.close();

con.close();

}catch(Exception e){e.printStackTrace();}

}

}

public static Vector search(String strSql)throws Exception{

Vector addressbookBeans=new Vector();

Connection con= DbUtil.connectToDb();

PreparedStatement pStmt=null;

ResultSet rs=null;

try{

pStmt=con.prepareStatement(strSql);

rs=pStmt.executeQuery();

while(rs.next())

addressbookBeans.add(new AddressBookBean(

rs.getString("NAME"),rs.getString("PHONE"),rs.getString("ADDRESS")));

return addressbookBeans;

}finally{

try{

rs.close();

pStmt.close();

con.close();

}catch(Exception e){e.printStackTrace();}

}

}

}

//JSP页面

<%@ include file="taglibs.jsp" %>

<app:validateSession/>

<html:errors/>

<html:form action="/delete.do" focus="title">

<center>

<table border="0" cellspacing="2" cellpadding="2" width="100%">

<tr>

<td align="right"> <bean:message key="prompt.name"/></td>

<td><html:text property="name" size="25" maxlength="25"/></td>

</tr>

<tr>

<td align="right"> <bean:message key="prompt.phone"/></td>

<td><html:text property="phone" size="25" maxlength="10"/></td>

</tr>

<tr>

<td align="right"> <bean:message key="prompt.address"/></td>

<td><html:text property="address" size="25" maxlength="50"/></td>

</tr>

<tr>

<td align="right">

<html:submit property="submit" >

<bean:message key="button.delete"/>

</html:submit>

</td>

<td align="left">

<html:reset >

<bean:message key="button.reset"/>

</html:reset>

</td>

</tr>

</table>

</center>

</html:form>

<html:link forward="mainMenu"><bean:message key="goto.mainMenu"/></html:link>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有