案例54-crm练习新增联系人
1 前台页面部分
1 linkman/add.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <TITLE>添加联系人</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <LINK href="${pageContext.request.contextPath }/css/Style.css" type=text/css rel=stylesheet> <LINK href="${pageContext.request.contextPath }/css/Manage.css" type=text/css rel=stylesheet> <META content="MSHTML 6.00.2900.3492" name=GENERATOR> </HEAD> <BODY> <FORM id=form1 name=form1 action="${pageContext.request.contextPath }/LinkManAction_add" method=post> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_019.jpg" border=0></TD> <TD width="100%" background="${pageContext.request.contextPath }/images/new_020.jpg" height=20></TD> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_021.jpg" border=0></TD> </TR> </TBODY> </TABLE> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15 background=${pageContext.request.contextPath }/images/new_022.jpg><IMG src="${pageContext.request.contextPath }/images/new_022.jpg" border=0></TD> <TD vAlign=top width="100%" bgColor=#ffffff> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=0> <TR> <TD class=manageHead>当前位置:联系人管理 > 添加联系人</TD> </TR> <TR> <TD height=2></TD> </TR> </TABLE> <TABLE cellSpacing=0 cellPadding=5 border=0> <tr> <td>所属客户:</td> <td> <!--隐藏域 用于传递选择客户的cust_id --> <input type="hidden" name="customer.cust_id" id="cust_id"/> <!-- 只用于页面的客户名称显示,根本不需要提交,所以不需要name属性 --> <input type="text" id="cust_name" style="WIDTH: 180px"/> </td> <td> <input type="button" value="选择客户" onclick="window.open( '${pageContext.request.contextPath}/CustomerAction_list?selected=true','', 'height=300,width=600,left=850,top=200')"> </td> </tr> <TR> <td>联系人名称:</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_name"> </td> <td>联系人性别:</td> <td> <input type="radio" value="1" name="lkm_gender">男 <input type="radio" value="2" name="lkm_gender">女 </td> </TR> <TR> <td>联系人办公电话 :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_phone"> </td> <td>联系人手机 :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_mobile"> </td> </TR> <TR> <td>联系人邮箱 :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_email"> </td> <td>联系人QQ :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_qq"> </td> </TR> <TR> <td>联系人地址 :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_position"> </td> <td>联系人备注 :</td> <td> <INPUT class=textbox id=sChannel2 style="WIDTH: 180px" maxLength=50 name="lkm_memo"> </td> </TR> <tr> <td rowspan=2> <INPUT class=button id=sButton2 type=submit value="保存 " name=sButton2> </td> </tr> </TABLE> </TD> <TD width=15 background="${pageContext.request.contextPath }/images/new_023.jpg"> <IMG src="${pageContext.request.contextPath }/images/new_023.jpg" border=0></TD> </TR> </TBODY> </TABLE> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_024.jpg" border=0></TD> <TD align=middle width="100%" background="${pageContext.request.contextPath }/images/new_025.jpg" height=15></TD> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_026.jpg" border=0></TD> </TR> </TBODY> </TABLE> </FORM> </BODY> </HTML>
2 customer/list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <TITLE>客户列表</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <LINK href="${pageContext.request.contextPath }/css/Style.css" type=text/css rel=stylesheet> <LINK href="${pageContext.request.contextPath }/css/Manage.css" type=text/css rel=stylesheet> <script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.4.4.min.js"></script> <SCRIPT language=javascript> function changePage(pageNum){ //alert(pageNum); //1 将页码的值放入对应表单隐藏域中 $("#currentPageInput").val(pageNum); //2提交表达 $("#pageForm").submit(); }; function changePageSize(pageSize){ //alert(pageSize); //1 将页码的值放入对应表单隐藏域中 $("#pageSizeInput").val(pageSize); //2提交表达 $("#pageForm").submit(); }; //选择客户的js代码 function selectCustomer(id,name){ //alert(id+":"+name); // 1获取到打开当前页面的页面的window对象 var win = window.opener; // 2获取到打开当前页面的页面的document对象 var doc = win.document; // 3获取到页面的客户属性选择组件并复制 doc.getElementById("cust_name").value=name; doc.getElementById("cust_id").value=id; }; </SCRIPT> <META content="MSHTML 6.00.2900.3492" name=GENERATOR> </HEAD> <BODY> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_019.jpg" border=0></TD> <TD width="100%" background="${pageContext.request.contextPath }/images/new_020.jpg" height=20></TD> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_021.jpg" border=0></TD> </TR> </TBODY> </TABLE> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15 background=${pageContext.request.contextPath } /images/new_022.jpg><IMG src="${pageContext.request.contextPath }/images/new_022.jpg" border=0></TD> <TD vAlign=top width="100%" bgColor=#ffffff> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=0> <TR> <TD class=manageHead>当前位置:客户管理 > 客户列表</TD> </TR> <TR> <TD height=2></TD> </TR> </TABLE> <TABLE borderColor=#cccccc cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD height=25> <FORM id="pageForm" name="customerForm" action="${pageContext.request.contextPath }/CustomerAction_list" method=post> <!-- 隐藏域 用于传递当前页面 --> <input type="hidden" name="currentPage" id="currentPageInput" value="<s:property value="#pageBean.currentPage"/>"> <!-- 隐藏域 用于传递每页显示的条数 --> <input type="hidden" name="pageSize" id="pageSizeInput" value="<s:property value="#pageBean.pageSize"/>"> <!-- 隐藏域 用于判断是否是选择客户页面 --> <input type="hidden" name="selected" value="parameters.selected" /> <TABLE cellSpacing=0 cellPadding=2 border=0> <TBODY> <TR> <TD>客户名称:</TD> <TD><INPUT class=textbox id=sChannel2 style="WIDTH: 80px" maxLength=50 name="cust_name" value="${param.cust_name}"></TD> <TD><INPUT class=button id=sButton2 type=submit value=" 筛选 " name=sButton2></TD> </TR> </TBODY> </TABLE> </FORM> </TD> </TR> <TR> <TD> <TABLE id=grid style="BORDER-TOP-WIDTH: 0px; FONT-WEIGHT: normal; BORDER-LEFT-WIDTH: 0px; BORDER-LEFT-COLOR: #cccccc; BORDER-BOTTOM-WIDTH: 0px; BORDER-BOTTOM-COLOR: #cccccc; WIDTH: 100%; BORDER-TOP-COLOR: #cccccc; FONT-STYLE: normal; BACKGROUND-COLOR: #cccccc; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none; BORDER-RIGHT-COLOR: #cccccc" cellSpacing=1 cellPadding=2 rules=all border=0> <TBODY> <TR style="FONT-WEIGHT: bold; FONT-STYLE: normal; BACKGROUND-COLOR: #eeeeee; TEXT-DECORATION: none"> <TD>客户名称</TD> <TD>客户级别</TD> <TD>客户来源</TD> <TD>联系人</TD> <TD>电话</TD> <TD>手机</TD> <TD>操作</TD> </TR> <s:iterator value="#pageBean.list" var="cust"> <TR style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none"> <TD><s:property value="#cust.cust_name" /></TD> <TD><s:property value="#cust.cust_level" /></TD> <TD><s:property value="#cust.cust_source" /></TD> <TD><s:property value="#cust.cust_linkman" /></TD> <TD><s:property value="#cust.cust_phone" /></TD> <TD><s:property value="#cust.cust_mobile" /></TD> <s:if test="#parameters.selected==null"> <TD><a href="${pageContext.request.contextPath }/CustomerAction_toEdit?cust_id=<s:property value="#cust.cust_id" />">修改</a> <a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a> </TD> </s:if> <s:else> <td colspan="1"> <input type="button" value="选择" onclick="selectCustomer(<s:property value="#cust.cust_id" />,'<s:property value="#cust.cust_name" />')" /> </td> </s:else> </TR> </s:iterator> <%-- <s:iterator value="#list" > <TR style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none"> <TD> <s:property value="cust_name" /> </TD> <TD> <s:property value="cust_level" /> </TD> <TD> <s:property value="cust_source" /> </TD> <TD> <s:property value="cust_linkman" /> </TD> <TD> <s:property value="cust_phone" /> </TD> <TD> <s:property value="cust_mobile" /> </TD> <TD> <a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a> <a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a> </TD> </TR> </s:iterator> --%> <%-- <c:forEach items="${list }" var="customer"> <TR style="FONT-WEIGHT: normal; FONT-STYLE: normal; BACKGROUND-COLOR: white; TEXT-DECORATION: none"> <TD>${customer.cust_name }</TD> <TD>${customer.cust_level }</TD> <TD>${customer.cust_source }</TD> <TD>${customer.cust_linkman }</TD> <TD>${customer.cust_phone }</TD> <TD>${customer.cust_mobile }</TD> <TD> <a href="${pageContext.request.contextPath }/customerServlet?method=edit&custId=${customer.cust_id}">修改</a> <a href="${pageContext.request.contextPath }/customerServlet?method=delete&custId=${customer.cust_id}">删除</a> </TD> </TR> </c:forEach> --%> </TBODY> </TABLE> </TD> </TR> <TR> <TD><SPAN id=pagelink> <DIV style="LINE-HEIGHT: 20px; HEIGHT: 20px; TEXT-ALIGN: right"> 共[<B><s:property value="#pageBean.totalCount" /></B>]条记 录,[<B> <s:property value="#pageBean.currentPage" /> </B>]页 ,每页显示 <select name="pageSize" id="selectPageSize" onchange="changePageSize($('#selectPageSize option:selected').val())" > <option value="1" <s:property value="#pageBean.pageSize==1?'selected':''"/>>1</option> <option value="2" <s:property value="#pageBean.pageSize==2?'selected':''"/>>2</option> <option value="3" <s:property value="#pageBean.pageSize==3?'selected':''"/>>3</option> <option value="4" <s:property value="#pageBean.pageSize==4?'selected':''"/>>4</option> <option value="5" <s:property value="#pageBean.pageSize==5?'selected':''"/>>5</option> </select> 条 [<A href="javaScript:void(0)" onclick="changePage(<s:property value='#pageBean.currentPage-1' />)">前一页</A>] <%-- <B>${page}</B> --%> [<A href="javaScript:void(0)" onclick="changePage(<s:property value='#pageBean.currentPage+1' />)">后一页</A>] 到 <input type="text" size="3" id="page" name="page" value="<s:property value='#pageBean.currentPage'/>" /> 页 <input type="button" value="Go" onclick="changePage($('#page').val())" /> </DIV> </SPAN></TD> </TR> </TBODY> </TABLE> </TD> <TD width=15 background="${pageContext.request.contextPath }/images/new_023.jpg"><IMG src="${pageContext.request.contextPath }/images/new_023.jpg" border=0></TD> </TR> </TBODY> </TABLE> <TABLE cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_024.jpg" border=0></TD> <TD align=middle width="100%" background="${pageContext.request.contextPath }/images/new_025.jpg" height=15></TD> <TD width=15><IMG src="${pageContext.request.contextPath }/images/new_026.jpg" border=0></TD> </TR> </TBODY> </TABLE> <s:debug></s:debug> </BODY> </HTML>
2 后台部分
1 LinkManAction
package www.test.web.action; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import www.test.domain.LinkMan; import www.test.service.LinkManService; public class LinkManAction extends ActionSupport implements ModelDriven<LinkMan> { private LinkMan lm = new LinkMan(); private LinkManService lms; public String add() throws Exception { // 1调用service执行保存操作 lms.save(lm); // 2重定向到联系人列表action return "toList"; } @Override public LinkMan getModel() { return lm; } public LinkManService getLms() { return lms; } public void setLms(LinkManService lms) { this.lms = lms; } }
2 LinkManServiceImpl
package www.test.service.impl; import www.test.dao.LinkManDao; import www.test.domain.LinkMan; import www.test.service.LinkManService; public class LinkManServiceImpl implements LinkManService { private LinkManDao lmd; @Override //保存联系人 public void save(LinkMan lm) { //直接调用dao的方法保存即可 lmd.saveOrUpdate(lm); } public LinkManDao getLmd() { return lmd; } public void setLmd(LinkManDao lmd) { this.lmd = lmd; } }