Struts完成客户列表显示 所用的基础知识 在之前的随笔中已经讲过。这篇是介绍如何使用Struts 完成客户列表显示 。
下面是 完成的代码执行逻辑图:
抽取项目部分代码 相信大家认真看一遍就明白的:
jsp 页面代码片段:
<TABLE cellSpacing&#61;0 cellPadding&#61;3 width&#61;165 align&#61;center border&#61;0><TBODY><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_1&#39;);"><SPANclass&#61;span id&#61;table_1Span>&#xff0b;SPAN> 客户管理TD>TR><TR><TD><TABLE id&#61;table_1 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"${pageContext.request.contextPath}/jsp/customer/add.jsp" target&#61;main>&#xff0d; 新增客户A>TD>TR><TR> <TD class&#61;menuSmall><A class&#61;style2 href&#61;"${pageContext.request.contextPath}/CustomerAction_list"target&#61;main>&#xff0d; 客户列表A>TD>TR>TBODY>TABLE>TD>TR><TR><TD background&#61;images/new_027.jpg height&#61;1>TD>TR><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_2&#39;);"><SPANclass&#61;span id&#61;table_2Span>&#xff0b;SPAN> 联系人管理TD>TR><TR><TD><TABLE id&#61;table_2 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"${pageContext.request.contextPath}/jsp/linkman/add.jsp"target&#61;main>&#xff0d; 新增联系人A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"linkmanServlet?method&#61;list"target&#61;main>&#xff0d;联系人列表A>TD>TR>TBODY>TABLE>TD>TR><TR><TD background&#61;images/new_027.jpg height&#61;1>TD>TR><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_5&#39;);"><SPANclass&#61;span id&#61;table_5Span>&#xff0b;SPAN> 客户拜访管理TD>TR><TR><TD><TABLE id&#61;table_5 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;新增客户拜访A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;客户拜访列表A>TD>TR>TBODY>TABLE>TD>TR><TR><TD background&#61;images/new_027.jpg height&#61;1>TD>TR><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_3&#39;);"><SPANclass&#61;span id&#61;table_3Span>&#xff0b;SPAN> 综合查询TD>TR><TR><TD><TABLE id&#61;table_3 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d; 客户信息查询A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d; 联系人信息查询A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d; 客户拜访记录查询A>TD>TR>TBODY>TABLE>TD>TR><TR><TD background&#61;images/new_027.jpg height&#61;1>TD>TR><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_4&#39;);"><SPANclass&#61;span id&#61;table_4Span>&#xff0b;SPAN> 统计分析TD>TR><TR><TD><TABLE id&#61;table_4 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;客户行业统计A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;客户来源统计A>TD>TR>TBODY>TABLE>TD>TR><TR><TD background&#61;images/new_027.jpg height&#61;1>TD>TR><TR><TD class&#61;mainMenu onClick&#61;"MenuDisplay(&#39;table_6&#39;);"><SPANclass&#61;span id&#61;table_6Span>&#xff0b;SPAN>系统管理TD>TR><TR><TD><TABLE id&#61;table_6 style&#61;"DISPLAY: none" cellSpacing&#61;0cellPadding&#61;2 width&#61;155 align&#61;center border&#61;0><TBODY><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;角色管理A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;用户管理A>TD>TR><TR><TD class&#61;menuSmall><A class&#61;style2 href&#61;"#"target&#61;main>&#xff0d;数据字典A>TD>TR>TBODY>TABLE>TD>TR>TBODY>TABLE>
Action类 代码&#xff1a;
1 public class CustomerAction extends ActionSupport {
2 private CustomerService cs &#61; new CustomerServiceImpl();
3
4 public String list() throws Exception {
5 //1 接受参数
6 String cust_name &#61; ServletActionContext.getRequest().getParameter("cust_name");
7 //2 创建离线查询对象
8 DetachedCriteria dc &#61;DetachedCriteria.forClass(Customer.class);
9 //3 判断参数拼装条件
10 //StringUtils.isNotBlank 静态方法 判断
11 //当cust_name 不为null 不为 ""&#xff08;空字符串&#xff09; ,不为空格时 返回true
12 if(StringUtils.isNotBlank(cust_name)){
13 dc.add(Restrictions.like("cust_name", "%"&#43;cust_name&#43;"%"));
14 }
15 //4 调用Service将离线对象传递
16 List
17 //5 将返回的list放入request域.转发到list.jsp显示
18 //引用ServletActionContext类的静态方法getRequest
19 //getRequest返回HttpServletRequest对象
20 ServletActionContext.getRequest().setAttribute("list", list);
21
22 return "list";
23 }
24 }
Struts.xml &#xff1a;
1 xml version&#61;"1.0" encoding&#61;"UTF-8"?>
2 DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5 <struts>
6
10 <constant name&#61;"struts.devMode" value&#61;"true">constant>
11 <package name&#61;"crm" namespace&#61;"/" extends&#61;"struts-default" >
12 <action name&#61;"CustomerAction_*" class&#61;"cn.itheima.web.action.CustomerAction" method&#61;"{1}" >
13 <result name&#61;"list" >/jsp/customer/list.jspresult>
14 action>
15 package>
16 struts>
ServiceImpl 类
2
3 import java.util.List;
4
5 import org.hibernate.Session;
6 import org.hibernate.Transaction;
7 import org.hibernate.criterion.DetachedCriteria;
8
9 import cn.itheima.dao.CustomerDao;
10 import cn.itheima.dao.impl.CustomerDaoImpl;
11 import cn.itheima.domain.Customer;
12 import cn.itheima.service.CustomerService;
13 import cn.itheima.utils.HibernateUtils;
14
15 public class CustomerServiceImpl implements CustomerService {
16
17 private CustomerDao customerDao &#61; new CustomerDaoImpl();
18
19 public List
20 Session session &#61; HibernateUtils.getCurrentSession();
21 //打开事务
22 Transaction tx &#61; session.beginTransaction();
23
24 List
25
26
27 //关闭事务
28 tx.commit();
29 return list;
30 }
31
32 public List
33 Session session &#61; HibernateUtils.getCurrentSession();
34 //打开事务
35 Transaction tx &#61; session.beginTransaction();
36
37 List
38
39
40 //关闭事务
41 tx.commit();
42 return list;
43 }
44
45 }
dao层实现类&#xff1a;
2
3 import java.util.List;
4
5 import org.hibernate.Criteria;
6 import org.hibernate.Session;
7 import org.hibernate.Transaction;
8 import org.hibernate.criterion.DetachedCriteria;
9
10 import cn.itheima.dao.CustomerDao;
11 import cn.itheima.domain.Customer;
12 import cn.itheima.utils.HibernateUtils;
13
14 public class CustomerDaoImpl implements CustomerDao {
15 public List
16 //1 获得session
17 Session session &#61; HibernateUtils.getCurrentSession();
18 //2 创建Criteria对象
19 Criteria c &#61; session.createCriteria(Customer.class);
20 return c.list();
21 }
22 }