【SSH小Demo】个人信息展示页面——XML配置方式(上)

最近没事,用Spring+Struts2+Hibernate做了一个小Demo,算是对知识做一个的巩固了解。下面将逐步记录从查询待编辑删除,增加,分页,以及搜索这些功能

我们先创建好一张数据表,并向里面插入一定的数据,以便测试

首先第一步创建好项目后,当然引入jar包

             

 然后创建一个包,在里面创建一个People.java以及它的映射文件People.hbm.xml

package com.zdxh.pojo;

public class People {
	private int id;
	private String name;
	private String sex;
	private String phone;
	private String address;
    
    /**setter and getter**/
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping package="com.zdxh.pojo">
    <class name="People" table="people">
        <id name="id" column="id">
            <generator class="native">
            </generator>
        </id>
        <property name="name" />
        <property name="sex" />
        <property name="address" />
        <property name="phone" />
    </class>
     
</hibernate-mapping>

 接下来就是开发DAO层,创建 com.zdxh.dao 包,在里面定义一个接口PeopleDAO,然后在创建一个com.zdxh.dao.impl包,在里面创建一个接口的实现类 PeopleDAOImpl

1.定义方法  list();

2.PeopleDAOImpl继承HibernateTemplate,HibernateTemplate里面自带sessionfactory的set方法,可以接受注入

package com.zdxh.dao;
import java.util.List;
import com.zdxh.pojo.People;

public interface PeopleDAO {
	List<People> list();
}
package com.zdxh.dao.impl;

import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.zdxh.dao.PeopleDAO;
import com.zdxh.pojo.People;

public class PeopleDAOImple extends HibernateTemplate implements PeopleDAO {
	public List<People> list(){
		return find("from People");
	}
}

在来开发service层

1.创建com.zdxh.service包,在里面定义接口PeopleService

2.创建com.zdxh.service.impl,在里面定义实现类PeopleServiceImple

package com.zdxh.service;
import java.util.List;
import com.zdxh.pojo.People;

public interface PeopleService {
	List<People> list();
}

 

package com.zdxh.service.impl;

import java.util.List;
import com.zdxh.dao.PeopleDAO;
import com.zdxh.pojo.People;
import com.zdxh.service.PeopleService;

public class PeopleServiceImpl implements PeopleService {
	PeopleDAO peopleDAO;
	
	public List<People> list(){
		return peopleDAO.list();
	}

	public PeopleDAO getPeopleDAO() {
		return peopleDAO;
	}
        //接受注入
	public void setPeopleDAO(PeopleDAO peopleDAO) {
		this.peopleDAO = peopleDAO;
	}
	
	
}

紧跟着就是就是写一个Action了,ProductAction提供对ProductService的注入,借助SSH的整合,ProductAction就充当非常单纯的控制层的角色:
1. 创建com.zdxh.action包
2. 在包内创建PeopleAction

package com.zdxh.action;

import java.util.List;

import com.zdxh.pojo.People;
import com.zdxh.service.PeopleService;

public class PeopleAction {
	List<People> ps;
	PeopleService peopleService;
	
	public String list(){
		ps=peopleService.list();
		return "listPeople";
	}
	
	public List<People> getPs() {
		return ps;
	}
	public void setPs(List<People> ps) {
		this.ps = ps;
	}
	public PeopleService getPeopleService() {
		return peopleService;
	}
	public void setPeopleService(PeopleService peopleService) {
		this.peopleService = peopleService;
	}
	
}

然后配置环境,在src目录下创建struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
  <constant name="struts.i18n.encoding" value="UTF-8"></constant>
   
  <constant name="struts.objectFactory" value="spring"/>
   
  <package name="basicstruts" extends="struts-default">
   
  <action name="*People" class="peopleActionBean" method="{1}">
    <result name="listPeople">WEB-INF/jsp/listPeople.jsp</result>
  </action>
   
  </package>
</struts>

在WEB-INF里面创建applicationContext.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:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context     
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  
    <bean name="peopleActionBean" class="com.zdxh.action.PeopleAction">
        <property name="peopleService" ref="peopleServiceImpl" />
    </bean>
     
    <bean name="peopleServiceImpl" class="com.zdxh.service.impl.PeopleServiceImpl">
        <property name="peopleDAO" ref="peopleDAOImpl" />
    </bean>
    <bean name="peopleDAOImpl" class="com.zdxh.dao.impl.PeopleDAOImpl">
        <property name="sessionFactory" ref="sf" />
    </bean>
 
    <bean name="sf"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="ds" />
        <property name="mappingResources">
            <list>
                <value>com/zdxh/pojo/People.hbm.xml</value>
            </list>
        </property>
  
        <property name="schemaUpdate"> 
            <value>true</value> 
        </property> 
                 
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                hibernate.show_sql=true
                hbm2ddl.auto=update
            </value>
        </property>
    </bean>   
         
    <bean name="ds"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/ssh_demo?characterEncoding=UTF-8" />
        <property name="username" value="root" />
        <property name="password" value="admin" />
    </bean>      
</beans>

同时,web.xml也要配置好struts2的拦截器和spring的监听器

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        </filter-class>
    </filter>
 
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>       
        <url-pattern>/*</url-pattern>
    </filter-mapping>
 
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
     
</web-app>

在WEB-INF下创建一个jsp文件夹,文件夹里面创建listPeople.jsp,把传过来的数据打印出来

然后启动tomcat测试一下 访问地址http://localhost:8080/SSH_Demo1A/listPeople

 上面已经完成了普通的查询数据,下面我们来为这个Demo添加一些功能——增加信息和删除信息

1.在PeopleDAO的接口和实现类上新增add和delete方法,直接放实现类的代码

package com.zdxh.dao.impl;

import java.util.List;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.zdxh.dao.PeopleDAO;
import com.zdxh.pojo.People;

public class PeopleDAOImpl extends HibernateTemplate implements PeopleDAO {
	public List<People> list(){
		return find("from People");
	}
	
	public void add(People p){
		save(p);
	}
	
	public void delete(People p){
		super.delete(p);
	}
}

2.给service层也增加add和delete方法

package com.zdxh.service.impl;

import java.util.List;
import com.zdxh.dao.PeopleDAO;
import com.zdxh.pojo.People;
import com.zdxh.service.PeopleService;

public class PeopleServiceImpl implements PeopleService {
	PeopleDAO peopleDAO;
	
	public List<People> list(){
		return peopleDAO.list();
	}
	
	public void add(People p){
		peopleDAO.add(p);
	}
	
	public void delete(People p){
		peopleDAO.delete(p);
	}

	public PeopleDAO getPeopleDAO() {
		return peopleDAO;
	}

	public void setPeopleDAO(PeopleDAO peopleDAO) {
		this.peopleDAO = peopleDAO;
	}
	
	
}

3.action控制层新增了一个对象people用来接收增加功能传递过来的people值

package com.zdxh.action;

import java.util.List;

import com.zdxh.pojo.People;
import com.zdxh.service.PeopleService;

public class PeopleAction {
	List<People> ps;
	PeopleService peopleService;
	People people;
	
	public String list(){
		ps=peopleService.list();
		return "listPeople";
	}
	
	public String add(){
		peopleService.add(people);
		return "listPeopleAction";
	}
	
	public String delete(){
		peopleService.delete(people);
		return "listPeopleAction";
	}
	
    /***setter and getter***/
	
}

并且需要在struts.xml里面配置跳转信息,新增<result name="listPeopleAction" type="redirect">listPeople</result>

 <action name="*People" class="peopleActionBean" method="{1}">
    <result name="listPeople">WEB-INF/jsp/listPeople.jsp</result>
    <result name="listPeopleAction" type="redirect">listPeople</result>
  </action>

在jsp页面上也要做修改     1.增加删除的按钮    2.增加表单 

 

 

再来测试一下,访问上面的地址:http://localhost:8080/SSH_Demo1A/listPeople,在输入框内输入信息,点击提交

 

添加成功了 

 

点击删除它,信息就没了

 

本篇介绍就到这里 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值