Struts2(六) 用Struts完成客户列表显示
Struts完成客户列表显示 所用的基础知识 在之前的随笔中已经讲过。这篇是介绍如何使用Struts 完成客户列表显示 。
下面是 完成的代码执行逻辑图:
抽取项目部分代码 相信大家认真看一遍就明白的:
jsp 页面代码片段:
- <TABLE cellSpacing=0 cellPadding=3 width=165 align=center border=0>
- <TBODY>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_1');"><SPAN
- class=span id=table_1Span>+</SPAN> 客户管理</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_1 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="${pageContext.request.contextPath}/jsp/customer/add.jsp"
- target=main>- 新增客户</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="${pageContext.request.contextPath}/CustomerAction_list"
- target=main>- 客户列表</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD background=images/new_027.jpg height=1></TD>
- </TR>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_2');"><SPAN
- class=span id=table_2Span>+</SPAN> 联系人管理</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_2 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="${pageContext.request.contextPath}/jsp/linkman/add.jsp"
- target=main>- 新增联系人</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="linkmanServlet?method=list"
- target=main>-联系人列表</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD background=images/new_027.jpg height=1></TD>
- </TR>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_5');"><SPAN
- class=span id=table_5Span>+</SPAN> 客户拜访管理</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_5 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-新增客户拜访</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-客户拜访列表</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD background=images/new_027.jpg height=1></TD>
- </TR>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_3');"><SPAN
- class=span id=table_3Span>+</SPAN> 综合查询</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_3 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>- 客户信息查询</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>- 联系人信息查询</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>- 客户拜访记录查询</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD background=images/new_027.jpg height=1></TD>
- </TR>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_4');"><SPAN
- class=span id=table_4Span>+</SPAN> 统计分析</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_4 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-客户行业统计</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-客户来源统计</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- <TR>
- <TD background=images/new_027.jpg height=1></TD>
- </TR>
- <TR>
- <TD class=mainMenu onClick="MenuDisplay('table_6');"><SPAN
- class=span id=table_6Span>+</SPAN>系统管理</TD>
- </TR>
- <TR>
- <TD>
- <TABLE id=table_6 style="DISPLAY: none" cellSpacing=0
- cellPadding=2 width=155 align=center border=0>
- <TBODY>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-角色管理</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-用户管理</A></TD>
- </TR>
- <TR>
- <TD class=menuSmall><A class=style2 href="#"
- target=main>-数据字典</A></TD>
- </TR>
- </TBODY>
- </TABLE>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
Action类 代码:
- public class CustomerAction extends ActionSupport {
- private CustomerService cs = new CustomerServiceImpl();
- public String list() throws Exception {
- //1 接受参数
- String cust_name = ServletActionContext.getRequest().getParameter("cust_name");
- //2 创建离线查询对象
- DetachedCriteria dc =DetachedCriteria.forClass(Customer.class);
- //3 判断参数拼装条件
- //StringUtils.isNotBlank 静态方法 判断
- //当cust_name 不为null 不为 ""(空字符串) ,不为空格时 返回true
- if(StringUtils.isNotBlank(cust_name)){
- dc.add(Restrictions.like("cust_name", "%"+cust_name+"%"));
- }
- //4 调用Service将离线对象传递
- List<Customer> list = cs.getAll(dc);
- //5 将返回的list放入request域.转发到list.jsp显示
- //引用ServletActionContext类的静态方法getRequest
- //getRequest返回HttpServletRequest对象
- ServletActionContext.getRequest().setAttribute("list", list);
- return "list";
- }
- }
Struts.xml :
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
- "http://struts.apache.org/dtds/struts-2.3.dtd">
- <struts>
- <!-- 指定struts2是否以开发模式运行
- 1.热加载主配置.(不需要重启即可生效)
- 2.提供更多错误信息输出,方便开发时的调试
- -->
- <constant name="struts.devMode" value="true"></constant>
- <package name="crm" namespace="/" extends="struts-default" >
- <action name="CustomerAction_*" class="cn.itheima.web.action.CustomerAction" method="{1}" >
- <result name="list" >/jsp/customer/list.jsp</result>
- </action>
- </package>
- </struts>
ServiceImpl 类
- import java.util.List;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import org.hibernate.criterion.DetachedCriteria;
- import cn.itheima.dao.CustomerDao;
- import cn.itheima.dao.impl.CustomerDaoImpl;
- import cn.itheima.domain.Customer;
- import cn.itheima.service.CustomerService;
- import cn.itheima.utils.HibernateUtils;
- public class CustomerServiceImpl implements CustomerService {
- private CustomerDao customerDao = new CustomerDaoImpl();
- public List<Customer> getAll() {
- Session session = HibernateUtils.getCurrentSession();
- //打开事务
- Transaction tx = session.beginTransaction();
- List<Customer> list = customerDao.getAll();
- //关闭事务
- tx.commit();
- return list;
- }
- public List<Customer> getAll(DetachedCriteria dc) {
- Session session = HibernateUtils.getCurrentSession();
- //打开事务
- Transaction tx = session.beginTransaction();
- List<Customer> list = customerDao.getAll(dc);
- //关闭事务
- tx.commit();
- return list;
- }
- }
dao层实现类:
- import java.util.List;
- import org.hibernate.Criteria;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- import org.hibernate.criterion.DetachedCriteria;
- import cn.itheima.dao.CustomerDao;
- import cn.itheima.domain.Customer;
- import cn.itheima.utils.HibernateUtils;
- public class CustomerDaoImpl implements CustomerDao {
- public List<Customer> getAll() {
- //1 获得session
- Session session = HibernateUtils.getCurrentSession();
- //2 创建Criteria对象
- Criteria c = session.createCriteria(Customer.class);
- return c.list();
- }
- }
Struts2(六) 用Struts完成客户列表显示的更多相关文章
- 转载 Struts2的配置 struts.xml Action详解
在学习struts的时候,我们一定要掌握struts2的工作原理.只有当我们明确了在struts2框架的内部架构的实现过程,在配置整个struts 的框架时,可以很好的进行逻辑上的配置.接下来我就先简 ...
- struts2学习笔记--struts.xml配置文件详解
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...
- Struts2学习笔记--Struts例子及开发流程
参考资料:http://blog.csdn.net/hntyzgn2010/article/details/5547753 http://chenlh.iteye.com/blog/464341 入门 ...
- struts2.0中struts.xml配置文件详解
先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...
- 1-1 struts2 基本配置 struts.xml配置文件详解
详见http://www.cnblogs.com/dooor/p/5323716.html 一. struts2工作原理(网友总结,千遍一律) 1 客户端初始化一个指向Servlet容器(例如Tomc ...
- struts2之配置文件struts.xml详解
struts配置文件 struts.xml配置参数详解 struts.xml中很大一部分配置默认配置就好了 但是有些还是需要做了解 以便于理解 和修改 <?xml version=" ...
- Struts2学习:struts.xml引入自定义的xml文件
随着项目代码的增多,用一个struts.xml来管理所有功能模块的Action未免显得臃肿且结构不清晰,因此可以根据实际的功能划分,将各模块的Action放在自定义的xml文件中,再引入struts. ...
- Struts2(六)result
一.result简述 result:输出结果:第个Action返回一个字符串,Struts2根据这个值来决定响应结果 name属性:result的逻辑名.和Actin里的返回值匹配,默认"s ...
- Struts2(六.用标签显示用户列表及Value Stack和Stack Context)
一.用Struts2标签显示用户列表 原理: 在struts中可以通过在action中将所有用户的信息存入到某个范围中,然后转向userlist.jsp,进行访问 原则: 在jsp网页上,尽量不要出现 ...
随机推荐
- 夏令营讲课内容整理 Day 7.
Day7是夏令营的最后一天,这一天主要讲了骗分技巧和往年经典的一些NOIP试题以及比赛策略. 这天有个小插曲,上午的day7T3是一道和树有关的题,我是想破脑袋也想不出来,正解写不出来就写暴力吧,暴力 ...
- BZOJ 2084: [Poi2010]Antisymmetry [Manacher]
2084: [Poi2010]Antisymmetry Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 609 Solved: 387[Submit] ...
- CocosCreator游戏开发---菜鸟学习之路(一)
PS(废话): 辞职后在家好久好久了,久到经济不允许了,接着就准备再次出去找工作了,然而工作哪有那么好找,特别是像我这种菜鸟.而且我还准备转行,准备去做游戏,技能等级接近于0,那工作就更难找了.既然如 ...
- 使用netstat检测及监测网络连接
在讲监测检测之前,先给大家在普及一个知识,那就是TCP连接的状态,TCP进行3次握手,其过程有很多状态,不同的连接状态,都有想对应的状态码,看下面列表: LISTEN:侦听来自远方的TCP端口的连接请 ...
- [bzoj3875] [Ahoi2014]骑士游戏
3875: [Ahoi2014]骑士游戏 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 844 Solved: 440[Submit][Status ...
- 微信开发系列——微信订阅号前端开发利器:WeUI
前言:年前的两个星期,学习了下微信公众号的开发.后端基本能够基于盛派的第三方sdk能搞定大部分事宜.剩下的就是前端了,关于手机端的浏览器的兼容性,一直是博主的一块心病,因为博主一直专注于bootstr ...
- Java经典编程题50道之十五
输入三个整数x,y,z,请把这三个数由小到大输出. public class Example15 { public static void main(String[] args) { ...
- Spring_Spring与DAO_Spring的Jdbc模板
一.导入Jar包 二.定义实体类与DB表 public class Student { private Integer id; private String name; private int age ...
- js中boolean类型的理解
<html> <head> <script type="text/javascript"> var x="12"; aler ...
- 轻松搭建Git服务器(Ubuntu)
搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...