zoukankan      html  css  js  c++  java
  • ssm环境搭建

    基本环境搭建环境

    1.web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>boot-crm1</display-name>
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
      <!-- 配置spring -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:spring/applicationContext-*.xml</param-value>
    	</context-param>
    
    	<!-- 配置监听器加载spring -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    
    	<!-- 配置SpringMVC -->
    	<servlet>
    		<servlet-name>boot-crm1</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:spring/springmvc.xml</param-value>
    		</init-param>
    		<!-- 配置springmvc什么时候启动,参数必须为整数 -->
    		<!-- 如果为0或者大于0,则springMVC随着容器启动而启动 -->
    		<!-- 如果小于0,则在第一次请求进来的时候启动 -->
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>boot-crm1</servlet-name>
    		<!-- 所有的请求都进入springMVC -->
    		<url-pattern>*.action</url-pattern>
    	</servlet-mapping>
      
    </web-app>
    

      

    2.WebContent下WEN-INF设置

    3.配置文件

    application-dao.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 配置 读取properties文件 jdbc.properties -->
    	<context:property-placeholder location="classpath:jdbc.properties" />
    
    	<!-- 配置 数据源 -->
    	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    		<property name="driverClassName" value="${jdbc.driver}" />
    		<property name="url" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    	</bean>
    	
    	<!-- 配置SessionFactory -->
    	<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="dataSource"  ref="dataSource"/>
    		<property name="configLocation"  value="classpath:SqlMapConfig.xml" />
    		<property name="typeAliasesPackage"  value="com.it.huyuan.crm.pojo" />
    	</bean>
    	
    	<!-- 动态代理dao扫描配置 -->
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
           <property name="basePackage" value="com.it.huanyu.crm.mapper" />
       </bean>
    
    </beans>
    

      

    application-service.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    	<!-- 配置@Service注解包扫描 -->
    	<context:component-scan base-package="com.it.huanyu.crm.service"/>
    
    </beans>
    

      

    application-transxml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 事务管理器 -->
    	<bean id="transactionManager"	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<!-- 数据源 -->
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<!-- 通知 -->
    	<tx:advice id="txAdvice" transaction-manager="transactionManager">
    		<tx:attributes>
    			<!-- 传播行为 -->
    			<tx:method name="save*" propagation="REQUIRED" />
    			<tx:method name="insert*" propagation="REQUIRED" />
    			<tx:method name="add*" propagation="REQUIRED" />
    			<tx:method name="create*" propagation="REQUIRED" />
    			<tx:method name="delete*" propagation="REQUIRED" />
    			<tx:method name="update*" propagation="REQUIRED" />
    			<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
    			<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
    			<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
    			<tx:method name="query*" propagation="SUPPORTS" read-only="true" />
    		</tx:attributes>
    	</tx:advice>
    
    	<!-- 切面 -->
    	<aop:config>
    		<aop:advisor advice-ref="txAdvice"
    			pointcut="execution(* com.it.huanyu.crm.service.*.*(..))" />
    	</aop:config>
    
    </beans>
    

      

    application-controller.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:mvc="http://www.springframework.org/schema/mvc"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    	<!-- 配置Controller扫描 -->
    	<context:component-scan base-package="com.it.huanyu.crm.controller" />
    	
    	<!-- 加载属性文件 -->
    	<context:property-placeholder location="classpath:crm.properties"/>
    	
    	<!-- 配置注解驱动 -->
    	<mvc:annotation-driven />
    
    	<!-- 配置视图解析器 -->
    	<bean	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<!-- 前缀 -->
    		<property name="prefix" value="/WEB-INF/jsp/" />
    		<!-- 后缀 -->
    		<property name="suffix" value=".jsp" />
    	</bean>
    </beans>
    

      

    crm.properties

    #u5ba2u6237u6765u6e90u7f16u7801
    CUSTOMER_FROM_TYPE=002
    #u5ba2u6237u884cu4e1au7f16u7801
    CUSTOMER_INDUSTRY_TYPE=001
    #u5ba2u6237u7ea7u522bu7f16u7801
    CUSTOMER_LEVEL_TYPE=006
    //常亮的配置和引用
    @Value("${CUSTOMER_FROM_TYPE}")
    	private String CUSTOMER_FROM_TYPE;
    

      

    jdbc.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/crm?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=123

    log4j.properties

    # Global logging configuration
    log4j.rootLogger=DEBUG, stdout
    # Console output...
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
    

      

    SqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
    </configuration>
    

      

    4.代码

    Controller层

    package com.it.huanyu.crm.controller;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import com.it.huanyu.crm.pojo.BaseDict;
    import com.it.huanyu.crm.pojo.Customer;
    import com.it.huanyu.crm.pojo.QueryVo;
    import com.it.huanyu.crm.service.BaseDictService;
    import com.it.huanyu.crm.service.CustomerService;
    import com.it.huanyu.crm.util.Page;
    
    
    @Controller
    @RequestMapping("customer")
    public class CustomerController {
    	@Autowired
    	private BaseDictService dictService;
    	@Autowired
    	private CustomerService customerService;
    	
    	@Value("${CUSTOMER_FROM_TYPE}")
    	private String CUSTOMER_FROM_TYPE;
    	//客户行业编码
    	@Value("${CUSTOMER_INDUSTRY_TYPE}")
    	private String CUSTOMER_INDUSTRY_TYPE;
    	//客户级别编码
    	@Value("${CUSTOMER_LEVEL_TYPE}")
    	private String CUSTOMER_LEVEL_TYPE;
    
    	@RequestMapping("list")
    	public String list(Model model,QueryVo vo) {
    
    		// 来源查询
    		List<BaseDict> fromType = dictService.getBaseDictByCode(CUSTOMER_FROM_TYPE);
    		// 行业查询
    		List<BaseDict> industryType = dictService.getBaseDictByCode(CUSTOMER_INDUSTRY_TYPE);
    		// 来源查询
    		List<BaseDict> levelType = dictService.getBaseDictByCode(CUSTOMER_LEVEL_TYPE);
    		
    		
    		//分页查询用户列表
    		Page<Customer> page = customerService.getCustomerByQueryVo(vo);
    		
    		//设置数据模型返回
    		model.addAttribute("fromType", fromType);
    		model.addAttribute("industryType", industryType);
    		model.addAttribute("levelType", levelType);
    		
    		//设置分页数据返回
    		model.addAttribute("page", page);
    		
    		//查询条件回显
    		model.addAttribute("vo", vo);
    
    		return "customer";
    	}
    	
    	@RequestMapping("edit")
    	@ResponseBody
    	public Customer edit(Integer id){
    		Customer customer = customerService.getCustomerById(id);
    		
    		return customer;
    	}
    	
    	@RequestMapping("update")
    	@ResponseBody
    	public String update(Customer customer){
    		String msg = "0";
    		try {
    			customerService.updateCustomer(customer);
    		} catch (Exception e) {
    			msg = "1";
    			e.printStackTrace();
    		}
    		return msg;
    	}
    	
    	@RequestMapping("delete")
    	@ResponseBody
    	public String delete(Integer id){
    		String msg = "0";
    		try {
    			customerService.deleteCustomer(id);
    		} catch (Exception e) {
    			msg = "1";
    			e.printStackTrace();
    		}
    		return msg;
    	}
    
    	@RequestMapping("myTag")
    	public String myTag() {
    		return "myTag";
    	}
    	@RequestMapping("myTestTag")
    	public String myTestTag(){
    		return "myTestTag";
    	}
    }
    

      

      

    Service层

    package com.it.huanyu.crm.service;
    
    import java.util.List;
    
    import com.it.huanyu.crm.pojo.BaseDict;
    
    
    /**
     * 字典持久化接口
     * @author Steven
     *
     */
    public interface BaseDictService {
    
        /**
         * 跟据编码查询字典列表
         * @param code
         * @return
         */
        List<BaseDict> getBaseDictByCode(String code);
    }
    package com.it.huanyu.crm.service;
    
    import com.it.huanyu.crm.pojo.Customer;
    import com.it.huanyu.crm.pojo.QueryVo;
    import com.it.huanyu.crm.util.Page;
    
    public interface CustomerService {
    
    	/**
    	 * 分页跟据查询条件查询客户列表
    	 * @param vo
    	 * @return
    	 */
    	Page<Customer> getCustomerByQueryVo(QueryVo vo);
    	
    	/**
    	 * 跟据id查询客户信息
    	 * @param id
    	 * @return
    	 */
    	Customer getCustomerById(Integer id);
    	
    	/**
    	 * 更新客户信息
    	 * @param customer
    	 */
    	void updateCustomer(Customer customer);
    	
    	/**
    	 * 删除客户
    	 * @param id
    	 */
    	void deleteCustomer(Integer id);
    }
    

      

    package com.it.huanyu.crm.service.impl;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.it.huanyu.crm.mapper.BaseDictMapper;
    import com.it.huanyu.crm.pojo.BaseDict;
    import com.it.huanyu.crm.service.BaseDictService;
    
    
    @Service
    public class BaseDictServiceImpl implements BaseDictService {
    	
    	@Autowired
    	private BaseDictMapper baseDictMapper;
    
    	@Override
    	public List<BaseDict> getBaseDictByCode(String code) {
    		return baseDictMapper.getBaseDictByCode(code);
    	}
    
    }
    

      

    package com.it.huanyu.crm.service.impl;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.it.huanyu.crm.mapper.CustomerMapper;
    import com.it.huanyu.crm.pojo.Customer;
    import com.it.huanyu.crm.pojo.QueryVo;
    import com.it.huanyu.crm.service.CustomerService;
    import com.it.huanyu.crm.util.Page;
    
    
    
    @Service
    public class CustomerServiceImpl implements CustomerService {
    	
    	@Autowired
    	private CustomerMapper customerMapper;
    
    	@Override
    	public Page<Customer> getCustomerByQueryVo(QueryVo vo) {
    		
    		//计算数据库起始行数
    		vo.setStart((vo.getPage() - 1) * vo.getRows());
    		
    		//查询用户列表
    		List<Customer> list = customerMapper.getCustomerByQueryVo(vo);
    		//查询总记录数
    		Integer count = customerMapper.getCountByQueryVo(vo);
    		
    		//组装分页数据
    		Page<Customer> page = new Page<Customer>(count, vo.getPage(), vo.getRows(), list);
    		
    		return page;
    	}
    
    	@Override
    	public Customer getCustomerById(Integer id) {
    		
    		return customerMapper.getCustomerById(id);
    	}
    
    	@Override
    	public void updateCustomer(Customer customer) {
    		customerMapper.updateCustomer(customer);
    	}
    
    	@Override
    	public void deleteCustomer(Integer id) {
    		customerMapper.deleteCustomer(id);
    	}
    
    }

    dao层

    package com.it.huanyu.crm.mapper;
    
    import java.util.List;
    
    import com.it.huanyu.crm.pojo.BaseDict;
    
    
    /**
     * 字典持久化接口
    
     *
     */
    public interface BaseDictMapper {
    
    	/**
    	 * 跟据编码查询字典列表
    	 * @param code
    	 * @return
    	 */
    	List<BaseDict> getBaseDictByCode(String code);
    }
    
    package com.it.huanyu.crm.mapper;
    
    import java.util.List;
    
    import com.it.huanyu.crm.pojo.Customer;
    import com.it.huanyu.crm.pojo.QueryVo;
    
    
    public interface CustomerMapper {
    
    	/**
    	 * 跟据查询条件查询客户列表
    	 * @param vo
    	 * @return
    	 */
    	List<Customer> getCustomerByQueryVo(QueryVo vo);
    	
    	/**
    	 * 跟据查询条件查询总记录数
    	 * @param vo
    	 * @return
    	 */
    	Integer getCountByQueryVo(QueryVo vo);
    	
    	/**
    	 * 跟据id查询客户信息
    	 * @param id
    	 * @return
    	 */
    	Customer getCustomerById(Integer id);
    	
    	/**
    	 * 更新客户信息
    	 * @param customer
    	 */
    	void updateCustomer(Customer customer);
    	
    	/**
    	 * 删除客户
    	 * @param id
    	 */
    	void deleteCustomer(Integer id);
    }
    
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.itheima.crm.mapper.BaseDictMapper">
    
    	<select id="getBaseDictByCode" parameterType="string" resultType="basedict">
    		SELECT
    		  `dict_id`,
    		  `dict_type_code`,
    		  `dict_type_name`,
    		  `dict_item_name`,
    		  `dict_item_code`,
    		  `dict_sort`,
    		  `dict_enable`,
    		  `dict_memo`
    		FROM `base_dict`
    		WHERE `dict_type_code` = #{code}
    	</select>
    
    </mapper>
    

      

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.itheima.crm.mapper.CustomerMapper">
    
    	<sql id="customer_where">
    		<where>
    			<if test="custName != null and custName != ''">
    				AND c.`cust_name` LIKE '%${custName }%'
    			</if>
    			<if test="custSource != null and custSource != ''">
    				AND c.`cust_source` = #{custSource}
    			</if>
    			<if test="custIndustry != null and custIndustry != ''">
    				AND c.`cust_industry` = #{custIndustry}
    			</if>
    			<if test="custLevel != null and custLevel != ''">
    				AND c.`cust_level` = #{custLevel}
    			</if>
    		</where>
    	</sql>
    
    	<select id="getCustomerByQueryVo" parameterType="queryvo" resultType="customer">
    		SELECT
    		  c.`cust_id`,
    		  c.`cust_name`,
    		  c.`cust_user_id`,
    		  c.`cust_create_id`,
    		  s.`dict_item_name` `cust_source`,
    		  i.`dict_item_name` `cust_industry`,
    		  l.`dict_item_name` `cust_level`,
    		  c.`cust_linkman`,
    		  c.`cust_phone`,
    		  c.`cust_mobile`,
    		  c.`cust_zipcode`,
    		  c.`cust_address`,
    		  c.`cust_createtime`
    		FROM `customer` c
    		LEFT JOIN base_dict s ON s.`dict_id` = c.`cust_source`
    		LEFT JOIN base_dict i ON i.`dict_id` = c.`cust_industry`
    		LEFT JOIN base_dict l ON l.`dict_id` = c.`cust_level`
    		<include refid="customer_where"/>
    		<if test="start != null">
    			LIMIT #{start}, #{rows};
    		</if>
    	</select>
    	
    	<select id="getCountByQueryVo" parameterType="queryvo" resultType="int">
    		SELECT count(1) FROM `customer` c
    		LEFT JOIN base_dict s ON s.`dict_id` = c.`cust_source`
    		LEFT JOIN base_dict i ON i.`dict_id` = c.`cust_industry`
    		LEFT JOIN base_dict l ON l.`dict_id` = c.`cust_level`
    		<include refid="customer_where"/>
    	</select>
    	
    	<select id="getCustomerById" parameterType="int" resultType="customer">
    		SELECT
    		  `cust_id`,
    		  `cust_name`,
    		  `cust_user_id`,
    		  `cust_create_id`,
    		  `cust_source`,
    		  `cust_industry`,
    		  `cust_level`,
    		  `cust_linkman`,
    		  `cust_phone`,
    		  `cust_mobile`,
    		  `cust_zipcode`,
    		  `cust_address`,
    		  `cust_createtime`
    		FROM `customer`
    		WHERE cust_id = #{id}
    	</select>
    	
    	<update id="updateCustomer" parameterType="customer">
    		UPDATE `customer`
    		<set>
    			<if test="cust_name!=null and cust_name!=''">
    				`cust_name` = #{cust_name},
    			</if>
    			<if test="cust_source!=null and cust_source!=''">
    				`cust_source` = '#{cust_source}',
    			</if>
    			<if test="cust_industry!=null and cust_industry!=''">
    				`cust_industry` = #{cust_industry},
    			</if>
    			<if test="cust_level!=null and cust_level!=''">
    				`cust_level` = #{cust_level},
    			</if>
    			<if test="cust_linkman!=null and cust_linkman!=''">
    				`cust_linkman` = #{cust_linkman},
    			</if>
    			<if test="cust_phone!=null and cust_phone!=''">
    				`cust_phone` = #{cust_phone},
    			</if>
    			<if test="cust_mobile!=null and cust_mobile!=''">
    				`cust_mobile` = #{cust_mobile},
    			</if>
    			<if test="cust_zipcode!=null and cust_zipcode!=''">
    				`cust_zipcode` = #{cust_zipcode},
    			</if>
    			<if test="cust_address!=null and cust_address!=''">
    				`cust_address` = #{cust_address},
    			</if>
    			<if test="cust_createtime!=null ">
    				`cust_createtime` = #{cust_createtime},
    			</if>
    
    		</set>
    		WHERE `cust_id` = #{cust_id};
    	</update>
    	
    	<delete id="deleteCustomer" parameterType="int">
    		DELETE
    		FROM `customer`
    		where `cust_id` = #{cust_id};
    	</delete>
    
    </mapper>

    pojo

    package com.it.huanyu.crm.pojo;
    /**
     * 字典数据模型
     *
     */
    public class BaseDict {
    	private String dict_id;
    	private String dict_type_code;
    	private String dict_type_name;
    	private String dict_item_name;
    	private String dict_item_code;
    	private Integer dict_sort;
    	private String dict_enable;
    	private String dict_memo;
    	public String getDict_id() {
    		return dict_id;
    	}
    	public void setDict_id(String dict_id) {
    		this.dict_id = dict_id;
    	}
    	public String getDict_type_code() {
    		return dict_type_code;
    	}
    	public void setDict_type_code(String dict_type_code) {
    		this.dict_type_code = dict_type_code;
    	}
    	public String getDict_type_name() {
    		return dict_type_name;
    	}
    	public void setDict_type_name(String dict_type_name) {
    		this.dict_type_name = dict_type_name;
    	}
    	public String getDict_item_name() {
    		return dict_item_name;
    	}
    	public void setDict_item_name(String dict_item_name) {
    		this.dict_item_name = dict_item_name;
    	}
    	public String getDict_item_code() {
    		return dict_item_code;
    	}
    	public void setDict_item_code(String dict_item_code) {
    		this.dict_item_code = dict_item_code;
    	}
    	public Integer getDict_sort() {
    		return dict_sort;
    	}
    	public void setDict_sort(Integer dict_sort) {
    		this.dict_sort = dict_sort;
    	}
    	public String getDict_enable() {
    		return dict_enable;
    	}
    	public void setDict_enable(String dict_enable) {
    		this.dict_enable = dict_enable;
    	}
    	public String getDict_memo() {
    		return dict_memo;
    	}
    	public void setDict_memo(String dict_memo) {
    		this.dict_memo = dict_memo;
    	}
    
    }
    
    package com.it.huanyu.crm.pojo;
    
    import java.util.Date;
    
    /**
     * 客户信息数据模型
     *
     */
    public class Customer {
    
    	private Long cust_id;
    	private String cust_name;
    	private Long cust_user_id;
    	private Long cust_create_id;
    	private String cust_source;
    	private String cust_industry;
    	private String cust_level;
    	private String cust_linkman;
    	private String cust_phone;
    	private String cust_mobile;
    	private String cust_zipcode;
    	private String cust_address;
    	private Date cust_createtime;
    	public Long getCust_id() {
    		return cust_id;
    	}
    	public void setCust_id(Long cust_id) {
    		this.cust_id = cust_id;
    	}
    	public String getCust_name() {
    		return cust_name;
    	}
    	public void setCust_name(String cust_name) {
    		this.cust_name = cust_name;
    	}
    	public Long getCust_user_id() {
    		return cust_user_id;
    	}
    	public void setCust_user_id(Long cust_user_id) {
    		this.cust_user_id = cust_user_id;
    	}
    	public Long getCust_create_id() {
    		return cust_create_id;
    	}
    	public void setCust_create_id(Long cust_create_id) {
    		this.cust_create_id = cust_create_id;
    	}
    	public String getCust_source() {
    		return cust_source;
    	}
    	public void setCust_source(String cust_source) {
    		this.cust_source = cust_source;
    	}
    	public String getCust_industry() {
    		return cust_industry;
    	}
    	public void setCust_industry(String cust_industry) {
    		this.cust_industry = cust_industry;
    	}
    	public String getCust_level() {
    		return cust_level;
    	}
    	public void setCust_level(String cust_level) {
    		this.cust_level = cust_level;
    	}
    	public String getCust_linkman() {
    		return cust_linkman;
    	}
    	public void setCust_linkman(String cust_linkman) {
    		this.cust_linkman = cust_linkman;
    	}
    	public String getCust_phone() {
    		return cust_phone;
    	}
    	public void setCust_phone(String cust_phone) {
    		this.cust_phone = cust_phone;
    	}
    	public String getCust_mobile() {
    		return cust_mobile;
    	}
    	public void setCust_mobile(String cust_mobile) {
    		this.cust_mobile = cust_mobile;
    	}
    	public String getCust_zipcode() {
    		return cust_zipcode;
    	}
    	public void setCust_zipcode(String cust_zipcode) {
    		this.cust_zipcode = cust_zipcode;
    	}
    	public String getCust_address() {
    		return cust_address;
    	}
    	public void setCust_address(String cust_address) {
    		this.cust_address = cust_address;
    	}
    	public Date getCust_createtime() {
    		return cust_createtime;
    	}
    	public void setCust_createtime(Date cust_createtime) {
    		this.cust_createtime = cust_createtime;
    	}
    	
    }
    

      

    package com.it.huanyu.crm.pojo;
    public class QueryVo {
    
    	private String custName;
    	private String custSource;
    	private String custIndustry;
    	private String custLevel;
    
    	// 当前页码数
    	private Integer page = 1;
    	// 数据库从哪一条数据开始查
    	private Integer start;
    	// 每页显示数据条数
    	private Integer rows = 10;
    	public String getCustName() {
    		return custName;
    	}
    	public void setCustName(String custName) {
    		this.custName = custName;
    	}
    	public String getCustSource() {
    		return custSource;
    	}
    	public void setCustSource(String custSource) {
    		this.custSource = custSource;
    	}
    	public String getCustIndustry() {
    		return custIndustry;
    	}
    	public void setCustIndustry(String custIndustry) {
    		this.custIndustry = custIndustry;
    	}
    	public String getCustLevel() {
    		return custLevel;
    	}
    	public void setCustLevel(String custLevel) {
    		this.custLevel = custLevel;
    	}
    	public Integer getPage() {
    		return page;
    	}
    	public void setPage(Integer page) {
    		this.page = page;
    	}
    	public Integer getStart() {
    		return start;
    	}
    	public void setStart(Integer start) {
    		this.start = start;
    	}
    	public Integer getRows() {
    		return rows;
    	}
    	public void setRows(Integer rows) {
    		this.rows = rows;
    	}
    
    }
    

      

    utils

    package com.it.huanyu.crm.util;
    
    import java.io.IOException;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;
    
    /**
     * 显示格式 上一页 1 2 3 4 5 下一页
     */
    public class NavigationTag extends TagSupport {
    	static final long serialVersionUID = 2372405317744358833L;
    
    	/**
    	 * request 中用于保存Page<E> 对象的变量名,默认为“page”
    	 */
    	private String bean = "page";
    
    	/**
    	 * 分页跳转的url地址,此属性必须
    	 */
    	private String url = null;
    
    	/**
    	 * 显示页码数量
    	 */
    	private int number = 5;
    
    	@Override
    	public int doStartTag() throws JspException {
    		JspWriter writer = pageContext.getOut();
    		HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
    		Page page = (Page) request.getAttribute(bean);
    		if (page == null)
    			return SKIP_BODY;
    		url = resolveUrl(url, pageContext);
    		try {
    			// 计算总页数
    			int pageCount = page.getTotal() / page.getSize();
    			if (page.getTotal() % page.getSize() > 0) {
    				pageCount++;
    			}
    			writer.print("<nav><ul class="pagination">");
    			// 显示“上一页”按钮
    			if (page.getPage() > 1) {
    				String preUrl = append(url, "page", page.getPage() - 1);
    				preUrl = append(preUrl, "rows", page.getSize());
    				writer.print("<li><a href="" + preUrl + "">上一页</a></li>");
    			} else {
    				writer.print("<li class="disabled"><a href="#">上一页</a></li>");
    			}
    			// 显示当前页码的前2页码和后两页码
    			// 若1 则 1 2 3 4 5, 若2 则 1 2 3 4 5, 若3 则1 2 3 4 5,
    			// 若4 则 2 3 4 5 6 ,若10 则 8 9 10 11 12
    			int indexPage = (page.getPage() - 2 > 0) ? page.getPage() - 2 : 1;
    			for (int i = 1; i <= number && indexPage <= pageCount; indexPage++, i++) {
    				if (indexPage == page.getPage()) {
    					writer.print("<li class="active"><a href="#">" + indexPage
    							+ "<span class="sr-only">(current)</span></a></li>");
    					continue;
    				}
    				String pageUrl = append(url, "page", indexPage);
    				pageUrl = append(pageUrl, "rows", page.getSize());
    				writer.print("<li><a href="" + pageUrl + "">" + indexPage + "</a></li>");
    			}
    			// 显示“下一页”按钮
    			if (page.getPage() < pageCount) {
    				String nextUrl = append(url, "page", page.getPage() + 1);
    				nextUrl = append(nextUrl, "rows", page.getSize());
    				writer.print("<li><a href="" + nextUrl + "">下一页</a></li>");
    			} else {
    				writer.print("<li class="disabled"><a href="#">下一页</a></li>");
    			}
    			writer.print("</nav>");
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return SKIP_BODY;
    	}
    
    	private String append(String url, String key, int value) {
    
    		return append(url, key, String.valueOf(value));
    	}
    
    	/**
    	 * 为url 参加参数对儿
    	 * 
    	 * @param url
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	private String append(String url, String key, String value) {
    		if (url == null || url.trim().length() == 0) {
    			return "";
    		}
    
    		if (url.indexOf("?") == -1) {
    			url = url + "?" + key + "=" + value;
    		} else {
    			if (url.endsWith("?")) {
    				url = url + key + "=" + value;
    			} else {
    				url = url + "&" + key + "=" + value;
    			}
    		}
    
    		return url;
    	}
    
    	/**
    	 * 为url 添加翻页请求参数
    	 * 
    	 * @param url
    	 * @param pageContext
    	 * @return
    	 * @throws javax.servlet.jsp.JspException
    	 */
    	private String resolveUrl(String url, javax.servlet.jsp.PageContext pageContext) throws JspException {
    		// UrlSupport.resolveUrl(url, context, pageContext)
    		Map params = pageContext.getRequest().getParameterMap();
    		for (Object key : params.keySet()) {
    			if ("page".equals(key) || "rows".equals(key))
    				continue;
    			Object value = params.get(key);
    			if (value == null)
    				continue;
    			try {
    				if (value.getClass().isArray()) {
    					// 解决GET乱码问题
    					// value = new String(((String[])
    					// value)[0].getBytes("ISO-8859-1"), "UTF-8");
    
    					value = ((String[]) value)[0];
    					url = append(url, key.toString(), value.toString());
    				} else if (value instanceof String) {
    					// 解决GET乱码问题
    					// value = new String(((String)
    					// value).getBytes("ISO-8859-1"), "UTF-8");
    					value = (String) value;
    					url = append(url, key.toString(), value.toString());
    				}
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    		return url;
    	}
    
    	/**
    	 * @return the bean
    	 */
    	public String getBean() {
    		return bean;
    	}
    
    	/**
    	 * @param bean
    	 *            the bean to set
    	 */
    	public void setBean(String bean) {
    		this.bean = bean;
    	}
    
    	/**
    	 * @return the url
    	 */
    	public String getUrl() {
    		return url;
    	}
    
    	/**
    	 * @param url
    	 *            the url to set
    	 */
    	public void setUrl(String url) {
    		this.url = url;
    	}
    
    	public void setNumber(int number) {
    		this.number = number;
    	}
    
    }
    

      

    package com.it.huanyu.crm.util;
    
    import java.util.List;
    
    public class Page<T> {
    
    	private int total;
    	private int page;
    	private int size;
    	private List<T> rows;
    
    	public Page() {
    		super();
    	}
    
    	/**
    	 * 
    	 * @param total
    	 *            查询数据总条数
    	 * @param page
    	 *            当前页码数
    	 * @param size
    	 *            每页显示数据条数
    	 * @param rows
    	 *            查询结果集
    	 */
    	public Page(int total, int page, int size, List<T> rows) {
    		super();
    		this.total = total;
    		this.page = page;
    		this.size = size;
    		this.rows = rows;
    	}
    
    	public int getTotal() {
    		return total;
    	}
    
    	public void setTotal(int total) {
    		this.total = total;
    	}
    
    	public int getPage() {
    		return page;
    	}
    
    	public void setPage(int page) {
    		this.page = page;
    	}
    
    	public int getSize() {
    		return size;
    	}
    
    	public void setSize(int size) {
    		this.size = size;
    	}
    
    	public List<T> getRows() {
    		return rows;
    	}
    
    	public void setRows(List<T> rows) {
    		this.rows = rows;
    	}
    
    }
    

      

  • 相关阅读:
    Unity 自定义日志保存
    一万字详解 Redis Cluster Gossip 协议
    第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
    数组小游戏---火把萤石
    11个编程接单的网站,你有技术就有收入,有收入就有女朋友《男盆友》
    逆向工程,调试Hello World !程序(更新中)
    魔改一波合成大西瓜!代码已开源~
    如何使用C++做个简单推箱子游戏
    第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛非官方题解
    zookeeper应用
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/9572159.html
Copyright © 2011-2022 走看看