zoukankan      html  css  js  c++  java
  • struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补;

    1:File--->New--->Other--->Maven--->Maven Project--->Next(之后界面如下所示:)

    --->Next(点击next之后出现如下界面:选择最后一个 maven-archetype-webapp,然后点击next)

    --->Next(点击next之后出现如下界面,然后选择好组织号,工程号,版本号即可),最后点击Finish

    2:maven项目创建好之后会报错,这里先在pom.xml中导入jar包,导入方式如下所示:这个pom配置好之后点击保存会将jar包下载到本地仓库,这个学习maven的时候都配置过,这个自己下去脑补吧;

      1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      3   <modelVersion>4.0.0</modelVersion>
      4   <groupId>com.bie.maven</groupId>
      5   <artifactId>ssh_xml</artifactId>
      6   <packaging>war</packaging>
      7   <version>0.0.1-SNAPSHOT</version>
      8   <name>ssh_xml Maven Webapp</name>
      9   <url>http://maven.apache.org</url>
     10   
     11   
     12   
     13   <!-- 配置一下jar包 -->
     14    <properties>
     15         <java-version>1.8</java-version>
     16         <junit-version>4.8.2</junit-version>
     17         <org.springframework-version>3.2.4.RELEASE</org.springframework-version>
     18         <jackson-mapper-asl-version>1.9.12</jackson-mapper-asl-version>
     19         <jackson-core-asl-version>1.9.12</jackson-core-asl-version>
     20         <mysql-connector-java-version>5.1.8</mysql-connector-java-version>
     21         
     22         <opensymphony-version>2.4.2</opensymphony-version>
     23         <freemarker-version>2.3.9</freemarker-version>
     24         <c3p0-version>0.9.1.2</c3p0-version>
     25         <commons-collections-version>1.0</commons-collections-version>
     26         <commons-fileupload-version>1.2.2</commons-fileupload-version>
     27         <org.apache.commons-version>3.1</org.apache.commons-version>
     28         <commons-codec-version>1.6</commons-codec-version>
     29         <dom4j-version>1.6.1</dom4j-version>
     30         <javax.servlet-version>1.2</javax.servlet-version>
     31         <aspectjweaver-version>1.6.6</aspectjweaver-version>
     32         <slf4j-log4j12-version>1.6.6</slf4j-log4j12-version>
     33         <log4j-version>1.2.16</log4j-version>
     34         <javax.servlet-jsp-version>2.0</javax.servlet-jsp-version>
     35         <cglib-version>2.2.2</cglib-version>
     36         <slf4j-api-version>1.6.6</slf4j-api-version>
     37         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     38     </properties>
     39     <dependencies>
     40         <!-- 配置 junit4.8.2 -->
     41         <dependency>
     42             <groupId>junit</groupId>
     43             <artifactId>junit</artifactId>
     44             <version>${junit-version}</version>
     45             <type>jar</type>
     46         </dependency>
     47         <!-- 配置 spring -->
     48         <dependency>
     49             <groupId>org.springframework</groupId>
     50             <artifactId>spring-core</artifactId>
     51             <version>${org.springframework-version}</version>
     52         </dependency>
     53         <dependency>
     54             <groupId>org.springframework</groupId>
     55             <artifactId>spring-web</artifactId>
     56             <version>${org.springframework-version}</version>
     57         </dependency>
     58         <dependency>
     59             <groupId>org.springframework</groupId>
     60             <artifactId>spring-test</artifactId>
     61             <version>${org.springframework-version}</version>
     62         </dependency>
     63         <dependency>
     64             <groupId>org.springframework</groupId>
     65             <artifactId>spring-aspects</artifactId>
     66             <version>${org.springframework-version}</version>
     67         </dependency>
     68         <dependency>
     69             <groupId>org.springframework</groupId>
     70             <artifactId>spring-context-support</artifactId>
     71             <version>${org.springframework-version}</version>
     72         </dependency>
     73         <dependency>
     74             <groupId>org.springframework</groupId>
     75             <artifactId>spring-web</artifactId>
     76             <version>${org.springframework-version}</version>
     77         </dependency>
     78 
     79         <dependency>
     80             <groupId>org.springframework</groupId>
     81             <artifactId>spring-webmvc</artifactId>
     82             <version>${org.springframework-version}</version>
     83         </dependency>
     84         <dependency>
     85             <groupId>org.springframework</groupId>
     86             <artifactId>spring-jdbc</artifactId>
     87             <version>${org.springframework-version}</version>
     88         </dependency>
     89         <dependency>
     90             <groupId>org.springframework</groupId>
     91             <artifactId>spring-tx</artifactId>
     92             <version>${org.springframework-version}</version>
     93         </dependency>
     94         <dependency>
     95             <groupId>org.springframework</groupId>
     96             <artifactId>spring-instrument</artifactId>
     97             <version>${org.springframework-version}</version>
     98         </dependency>
     99         <dependency>
    100             <groupId>org.springframework</groupId>
    101             <artifactId>spring-instrument-tomcat</artifactId>
    102             <version>${org.springframework-version}</version>
    103         </dependency>
    104         
    105         <dependency>  
    106             <groupId>org.springframework</groupId>  
    107             <artifactId>spring-orm</artifactId>  
    108             <version>${org.springframework-version}</version>  
    109         </dependency>
    110         <!--springmvc 转换为 Json -->
    111         <dependency>
    112             <groupId>org.codehaus.jackson</groupId>
    113             <artifactId>jackson-mapper-asl</artifactId>
    114             <version>${jackson-mapper-asl-version}</version>
    115         </dependency>
    116         <dependency>
    117             <groupId>org.codehaus.jackson</groupId>
    118             <artifactId>jackson-core-asl</artifactId>
    119             <version>${jackson-core-asl-version}</version>
    120         </dependency>
    121         <!--配置 freemarker -->
    122         <dependency>
    123             <groupId>freemarker</groupId>
    124             <artifactId>freemarker</artifactId>
    125             <version>${freemarker-version}</version>
    126         </dependency>
    127         
    128         <!-- jdbc driver -->
    129         <dependency>
    130             <groupId>mysql</groupId>
    131             <artifactId>mysql-connector-java</artifactId>
    132             <version>${mysql-connector-java-version}</version>
    133         </dependency>
    134         <!-- connect pool with c3p0 -->
    135         <dependency>
    136             <groupId>c3p0</groupId>
    137             <artifactId>c3p0</artifactId>
    138             <version>${c3p0-version}</version>
    139         </dependency>
    140 
    141         <dependency>
    142             <groupId>commons-fileupload</groupId>
    143             <artifactId>commons-fileupload</artifactId>
    144             <version>${commons-fileupload-version}</version>
    145         </dependency>
    146 
    147         <dependency>
    148             <groupId>org.apache.commons</groupId>
    149             <artifactId>commons-lang3</artifactId>
    150             <version>${org.apache.commons-version}</version>
    151         </dependency>
    152 
    153         <dependency>
    154             <groupId>commons-codec</groupId>
    155             <artifactId>commons-codec</artifactId>
    156             <version>${commons-codec-version}</version>
    157         </dependency>
    158         <!-- analyze xml use dom4j -->
    159         <dependency>
    160             <groupId>dom4j</groupId>
    161             <artifactId>dom4j</artifactId>
    162             <version>${dom4j-version}</version>
    163         </dependency>
    164         <!-- about servlet -->
    165         <dependency>
    166             <groupId>javax.servlet</groupId>
    167             <artifactId>jstl</artifactId>
    168             <version>${javax.servlet-version}</version>
    169         </dependency>
    170 
    171 
    172         <dependency>
    173             <groupId>taglibs</groupId>
    174             <artifactId>standard</artifactId>
    175             <version>1.1.2</version>
    176         </dependency>
    177         <dependency>
    178             <groupId>javax.servlet</groupId>
    179             <artifactId>javax.servlet-api</artifactId>
    180             <version>3.0.1</version>
    181             <scope>provided</scope>
    182         </dependency>
    183         <dependency>
    184             <groupId>org.slf4j</groupId>
    185             <artifactId>slf4j-log4j12</artifactId>
    186             <version>1.6.6</version>
    187             <scope>provided</scope>
    188         </dependency>
    189         <dependency>
    190             <groupId>log4j</groupId>
    191             <artifactId>log4j</artifactId>
    192             <version>1.2.17</version>
    193         </dependency>
    194 
    195         <dependency>
    196             <groupId>org.slf4j</groupId>
    197             <artifactId>slf4j-api</artifactId>
    198             <version>1.6.6</version>
    199         </dependency>
    200         <dependency>
    201             <groupId>javax.activation</groupId>
    202             <artifactId>activation</artifactId>
    203             <version>1.1.1</version>
    204         </dependency>
    205 
    206         <!-- memcached -->
    207         <dependency>
    208             <groupId>com.google.code.maven-play-plugin.spy</groupId>
    209             <artifactId>memcached</artifactId>
    210             <version>2.4.2</version>
    211         </dependency>
    212         <dependency>
    213             <groupId>cglib</groupId>
    214             <artifactId>cglib</artifactId>
    215             <version>${cglib-version}</version>
    216         </dependency>
    217         <dependency>
    218             <groupId>net.fckeditor</groupId>
    219             <artifactId>java-core</artifactId>
    220             <version>2.6</version>
    221         </dependency>
    222         <dependency>
    223             <groupId>org.json</groupId>
    224             <artifactId>json</artifactId>
    225             <version>20131018</version>
    226         </dependency>
    227       
    228         <dependency>
    229             <groupId>com.sun.jersey</groupId>
    230             <artifactId>jersey-client</artifactId>
    231             <version>1.18.1</version>
    232         </dependency>
    233         <dependency>
    234             <groupId>jsptags</groupId>
    235             <artifactId>pager-taglib</artifactId>
    236             <version>2.0</version>
    237         </dependency>
    238 
    239         <dependency>
    240             <groupId>net.sourceforge.jexcelapi</groupId>
    241             <artifactId>jxl</artifactId>
    242             <version>2.6.10</version>
    243         </dependency>
    244 
    245         <dependency>
    246             <groupId>opensymphony</groupId>
    247             <artifactId>oscache</artifactId>
    248             <version>2.4.1</version>
    249         </dependency>
    250         <dependency>
    251             <groupId>javax.servlet</groupId>
    252             <artifactId>servlet-api</artifactId>
    253             <version>2.4</version>
    254             <scope>provided</scope>
    255         </dependency>
    256         
    257         <dependency>
    258             <groupId>org.apache.struts</groupId>
    259             <artifactId>struts2-core</artifactId>
    260             <version>2.3.8</version>
    261             <exclusions>
    262                 <exclusion>
    263                     <artifactId>javassist</artifactId>
    264                         <groupId>javassist</groupId>
    265                 </exclusion>
    266             </exclusions>
    267         </dependency>
    268         
    269         <!-- spring和struts之间的联系 -->
    270         <dependency>  
    271             <groupId>org.apache.struts</groupId>  
    272             <artifactId>struts2-spring-plugin</artifactId>  
    273             <version>2.3.8</version>  
    274         </dependency>
    275         
    276         <!-- struts2的注解 -->
    277         <dependency>
    278             <groupId>org.apache.struts</groupId>
    279             <artifactId>struts2-convention-plugin</artifactId>
    280         <version>2.3.8</version>
    281         </dependency>
    282 
    283     
    284     <dependency>
    285         <groupId>org.hibernate</groupId>
    286         <artifactId>hibernate-core</artifactId>
    287         <version>4.1.7.Final</version>
    288     </dependency>
    289     <dependency>
    290         <groupId>org.hibernate</groupId>
    291         <artifactId>hibernate-ehcache</artifactId>
    292         <version>4.1.7.Final</version>
    293     </dependency>
    294     <dependency>
    295         <groupId>displaytag</groupId>
    296         <artifactId>displaytag</artifactId>
    297         <version>1.2</version>
    298     </dependency>
    299     
    300   </dependencies>
    301   
    302   
    303   
    304   
    305   <build>
    306     <finalName>ssh_xml</finalName>
    307   </build>
    308   
    309   
    310 </project>

    3:web.xml里面的dtd默认是2.3的,不过2.3的不支持el表达式,所以这里修改为2.5的。配置如下所示:

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <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" version="2.5">
    3   <display-name>Archetype Created Web Application</display-name>
    4   
    5 
    6   <display-name>Archetype Created Web Application</display-name>
    7   
    8 </web-app>

     4:项目配置好上面的,接下来开始写代码,首先从web.xml的配置开始,比如struts2的核心过滤器,spring核心配置文件,监听器;

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <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" version="2.5">
     3   <display-name>Archetype Created Web Application</display-name>
     4   
     5 
     6   <display-name>Archetype Created Web Application</display-name>
     7   
     8   <!-- 配置spring的监听器 ,加载本地的springp配置文件-->
     9   <context-param>
    10       <param-name>contextConfigLocation</param-name>
    11       <param-value>classpath:bean-*.xml</param-value>
    12   </context-param>
    13   
    14   <!-- 
    15       spring的监听器 spring-web-3.2.4.RELEASE.jar ==》org.springframework
    16           ==》context ==》ContextLoaderListener
    17   -->
    18   <listener>
    19       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    20   </listener>
    21   
    22   
    23   <!-- 
    24       struts2的核心过滤器 
    25           1:filter-class  ==》 struts2-core-2.3.8.jar    ==》org.apache.struts2    
    26               ==》 dispatcher ==》 ng ==》filter ==》StrutsPrepareAndExecuteFilter
    27   -->
    28   <filter>
    29       <filter-name>struts2Filter</filter-name>
    30       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    31   </filter>
    32   <filter-mapping>
    33       <filter-name>struts2Filter</filter-name>
    34       <url-pattern>/*</url-pattern>
    35   </filter-mapping>
    36   
    37 </web-app>

     5:配置好之后就需要配置一下maven标准格式:在src/main下面创建一个java的文件夹,在src/下面创建一个test,在test下面创建java文件夹,配置如下所示:

     6:简单测试一下,将项目发布到tomcat中,启动tomcat,运行之后tomcat不报错,说明项目正常;

    7:将spring的配置文件bean-common.xml配置文件放到src/main/resources下面即可(src/main/resources也是根目录):配置如下所示:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xmlns:aop="http://www.springframework.org/schema/aop"
     7     xmlns:tx="http://www.springframework.org/schema/tx"
     8     xsi:schemaLocation="http://www.springframework.org/schema/beans
     9          http://www.springframework.org/schema/beans/spring-beans.xsd
    10           http://www.springframework.org/schema/context
    11          http://www.springframework.org/schema/context/spring-context.xsd
    12          http://www.springframework.org/schema/aop
    13          http://www.springframework.org/schema/aop/spring-aop.xsd
    14          http://www.springframework.org/schema/tx
    15           http://www.springframework.org/schema/tx/spring-tx.xsd">
    16 
    17           
    18 </beans>          
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     4     xmlns:p="http://www.springframework.org/schema/p"
     5     xmlns:context="http://www.springframework.org/schema/context"
     6     xmlns:aop="http://www.springframework.org/schema/aop"
     7     xmlns:tx="http://www.springframework.org/schema/tx"
     8     xsi:schemaLocation="http://www.springframework.org/schema/beans
     9          http://www.springframework.org/schema/beans/spring-beans.xsd
    10           http://www.springframework.org/schema/context
    11          http://www.springframework.org/schema/context/spring-context.xsd
    12          http://www.springframework.org/schema/aop
    13          http://www.springframework.org/schema/aop/spring-aop.xsd
    14          http://www.springframework.org/schema/tx
    15           http://www.springframework.org/schema/tx/spring-tx.xsd">
    16 
    17 
    18     <!-- 1. 连接池实例 -->
    19     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    20         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssh"></property>
    21         <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
    22         <property name="user" value="root"></property>
    23         <property name="password" value="123456"></property>
    24         <property name="initialPoolSize" value="3"></property>
    25         <property name="maxPoolSize" value="6"></property>
    26     </bean>
    27     
    28     <!-- 2. Spring管理SessionFactory 【全部配置都写到spring中】 -->
    29     <!-- # 注入DataSource、 注入常用配置属性、映射配置属性 -->
    30     <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    31         <property name="dataSource" ref="dataSource"></property>
    32         <property name="hibernateProperties">
    33             <props>
    34                  <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    35                  <prop key="hibernate.show_sql">true</prop>
    36                  <!-- <prop key="hibernate.hbm2ddl.auto">update</prop> -->
    37             </props>
    38         </property>
    39         <property name="mappingLocations">
    40             <list>
    41                 <value>classpath:com/bie/po/*.hbm.xml</value>
    42             </list>
    43         </property>
    44     </bean>
    45     
    46     <!-- 3. 事务相关配置 -->
    47     <!-- 3.1 事务管理器类 -->
    48     <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    49         <property name="sessionFactory" ref="sessionFactory"></property>
    50     </bean>
    51 
    52     <!-- 3.2 事务增强(如何管理事务)-->
    53     <tx:advice id="txAdvice" transaction-manager="txManager">
    54         <tx:attributes>
    55             <tx:method name="get*" read-only="true"/>
    56             <tx:method name="find*" read-only="true"/>
    57             <tx:method name="select*" read-only="true"/>
    58             <tx:method name="*" read-only="false"/>
    59         </tx:attributes>
    60     </tx:advice>
    61 
    62     <!-- 3.3 Aop配置 = 切入点表达式(拦截目标对象,生成代理)  + 事务增强应用-->
    63     <aop:config>
    64         <aop:pointcut expression="execution(* com.bie.service.impl.*.*(..))" id="pointcut"/>
    65         <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
    66     </aop:config>
    67      
    68      
    69     <!-- ioc容器注入 dao层的注入-->      
    70     <bean id="adminDao" class="com.bie.dao.impl.AdminDaoImpl">
    71         <property name="sessionFactory" ref="sessionFactory"></property>
    72     </bean>
    73     
    74     <!-- Service 需要注入 Dao -->
    75     <bean id="adminService" class="com.bie.service.impl.AdminServiceImpl">
    76         <property name="adminDao" ref="adminDao"></property>
    77     </bean>
    78           
    79     <!-- Service 需要注入 Dao -->
    80     <bean id="adminAction" class="com.bie.action.AdminAction">
    81         <property name="adminService" ref="adminService"></property>
    82     </bean> 
    83           
    84 </beans>          

    8:struts的配置文件struts.xml配置文件放到src/main/resources下面即可(src/main/resources也是根目录):配置如下所示:

    1 <?xml version="1.0" encoding="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 
    6 <struts>
    7     
    8 
    9 </struts>    
     1 <?xml version="1.0" encoding="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 
     6 <struts>
     7     
     8     <package name="admin_package" extends="struts-default">
     9     
    10         <!-- Ation实例交给spring容器创建 -->
    11         <action name="select_*" class="adminAction" method="{1}">
    12             
    13             <!-- 列表展示 -->
    14             <result name="success">index.jsp</result>
    15             
    16         </action>
    17     </package>    
    18 
    19 </struts>    

    9:配置到第八步,基本结束,开始写代码,创建一个实体类Admin;如下所示:

     1 package com.bie.po;
     2 
     3 /** 
     4 * @author 作者:别先生
     5 * @version 创建时间:2017年6月10日 下午2:08:17 
     6 * 类说明 
     7 */
     8 
     9 public class Admin {
    10 
    11     private Integer adminId;//管理员编号
    12     private String adminName;//管理员姓名
    13     private String adminPwd;//管理员密码
    14     
    15     public Integer getAdminId() {
    16         return adminId;
    17     }
    18     public void setAdminId(Integer adminId) {
    19         this.adminId = adminId;
    20     }
    21     public String getAdminName() {
    22         return adminName;
    23     }
    24     public void setAdminName(String adminName) {
    25         this.adminName = adminName;
    26     }
    27     public String getAdminPwd() {
    28         return adminPwd;
    29     }
    30     public void setAdminPwd(String adminPwd) {
    31         this.adminPwd = adminPwd;
    32     }
    33     @Override
    34     public String toString() {
    35         return "Admin [adminId=" + adminId + ", adminName=" + adminName + ", adminPwd=" + adminPwd + "]";
    36     }
    37 
    38     
    39 }

    10:创建好实体类之后配置一个hibernate的映射文件;Admin.hbm.xml,代码如下所示:

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE hibernate-mapping PUBLIC 
     3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     5 
     6 <!-- hibernate的实体类映射文件的配置,package包指出总包所在 -->
     7 <hibernate-mapping package="com.bie.po">
     8 
     9     <!-- class的name是实体类的名字,table是数据表名 -->
    10     <class name="Admin" table="admin">
    11         <id name="adminId">
    12             <!-- native设置自增 -->
    13             <generator class="native"></generator>
    14         </id>
    15         
    16         <!-- 非主键的映射 -->
    17         <property name="adminName" length="20"></property>
    18         <property name="adminPwd" length="20"></property>
    19     </class>
    20 
    21 </hibernate-mapping>    
    22     

    11:创建好实体类之后开始创建dao层的接口和实现类,如AdminDao接口和AdminDaoImpl实现类;

     1 package com.bie.dao;
     2 
     3 import java.util.List;
     4 
     5 import com.bie.po.Admin;
     6 
     7 /** 
     8 * @author 作者:别先生
     9 * @version 创建时间:2017年6月10日 下午2:25:01 
    10 * 类说明 
    11 */
    12 
    13 public interface AdminDao {
    14 
    15     /**
    16      * 查询管理员的信息
    17      * @param admin
    18      * @return
    19      */
    20     public List<Admin> selectAdmin();
    21 }
     1 package com.bie.dao.impl;
     2 
     3 import java.util.List;
     4 
     5 import org.hibernate.SessionFactory;
     6 
     7 import com.bie.dao.AdminDao;
     8 import com.bie.po.Admin;
     9 
    10 /** 
    11 * @author 作者:别先生
    12 * @version 创建时间:2017年6月10日 下午2:25:15 
    13 * 类说明 
    14 */
    15 
    16 public class AdminDaoImpl implements AdminDao{
    17 
    18     //IOC容器注入sessionFactory对象
    19     private SessionFactory sessionFactory;
    20     public void setSessionFactory(SessionFactory sessionFactory) {
    21         this.sessionFactory = sessionFactory;
    22     }
    23     
    24     public List<Admin> selectAdmin() {
    25         
    26         List<Admin> list =  sessionFactory.getCurrentSession().createQuery(" from Admin ").list();
    27         
    28         return list;
    29     }
    30 
    31     
    32 }

    12:创建好dao层接口和实现类之后开始创建service层的接口和实现类,如AdminService接口和AdminServiceImpl实现类;

     1 package com.bie.service;
     2 
     3 import java.util.List;
     4 
     5 import com.bie.po.Admin;
     6 
     7 /** 
     8 * @author 作者:别先生
     9 * @version 创建时间:2017年6月10日 下午2:29:20 
    10 * 类说明 
    11 */
    12 
    13 public interface AdminService {
    14 
    15     public List<Admin> selectAdmin();
    16 }
     1 package com.bie.service.impl;
     2 
     3 import java.util.List;
     4 
     5 import com.bie.dao.AdminDao;
     6 import com.bie.po.Admin;
     7 import com.bie.service.AdminService;
     8 
     9 /** 
    10 * @author 作者:别先生
    11 * @version 创建时间:2017年6月10日 下午2:29:40 
    12 * 类说明 
    13 */
    14 
    15 public class AdminServiceImpl implements AdminService{
    16 
    17     //ioc容器注入
    18     private AdminDao adminDao;
    19     public void setAdminDao(AdminDao adminDao) {
    20         this.adminDao = adminDao;
    21     }
    22     
    23     public List<Admin> selectAdmin(){
    24         
    25         List<Admin> list = adminDao.selectAdmin();
    26         
    27         return list;
    28     }
    29 }

    13:当写好service层之后开始写action层AdminAction,这里传递前台页面的参数;代码如下所示:

     1 package com.bie.action;
     2 
     3 import java.util.List;
     4 import java.util.Map;
     5 
     6 import org.apache.struts2.interceptor.RequestAware;
     7 
     8 import com.bie.po.Admin;
     9 import com.bie.service.AdminService;
    10 import com.opensymphony.xwork2.ActionSupport;
    11 
    12 /** 
    13 * @author 作者:别先生
    14 * @version 创建时间:2017年6月10日 下午2:36:07 
    15 * 类说明 
    16 */
    17 
    18 public class AdminAction extends ActionSupport implements RequestAware{
    19 
    20     
    21     private static final long serialVersionUID = 1L;
    22 
    23     //ioc容器注入
    24     private AdminService adminService;
    25     public void setAdminService(AdminService adminService) {
    26         this.adminService = adminService;
    27     }
    28     
    29     // 接收框架运行时候传入的代表request对象的map
    30     private Map<String, Object> request;
    31     public void setRequest(Map<String, Object> request) {
    32         this.request = request;
    33     }
    34     
    35     
    36     //ioc容器注入
    37     private Admin admin;
    38     public void setAdmin(Admin admin) {
    39         this.admin = admin;
    40     }
    41     public Admin getAdmin() {
    42         return admin;
    43     }
    44     
    45     public String selectAdmin(){
    46         
    47         List<Admin> list = adminService.selectAdmin();
    48         
    49         //将信息保存到request中
    50         request.put("list", list);
    51         
    52         return "success";
    53     }
    54     
    55 
    56 }

    14:当后台写完之后开始写前台测试页面:页面如下所示

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>主页显示管理员的信息</title>
     9 </head>
    10 <body>
    11 
    12 <a href="select_selectAdmin.action">查询所有用户信息</a>
    13 
    14 <center>
    15     <table cellspacing="20" cellpadding="20">
    16         <tr>
    17             <th>管理员编号</th>
    18             <th>管理员姓名</th>
    19             <th>管理员密码</th>
    20         </tr>
    21         <c:forEach items="${list }" var="list">
    22         <tr>
    23             <td>${list.adminId}</td>
    24             <td>${list.adminName}</td>
    25             <td>${list.adminPwd   }</td>
    26         </tr>
    27         </c:forEach>
    28     </table>
    29 </center>
    30 
    31 </body>
    32 </html>

    直接访问index.jsp页面,测试结果如下所示:

    ssh配置版框架搭建先到这吧,以后有机会再深学吧。时间过的挺快的,马上就该出去找工作了......

    增删改查功能日后有时间再写吧......

  • 相关阅读:
    win7下安装Linux实现双系统全攻略
    Dreamweaver_CS6安装与破解,手把手教程
    windows Server 2008各版本有何区别?
    如何查看路由器中的pppoe拨号密码?
    xp远程桌面连接最大用户数怎么设置?
    网站的盈利模式
    linux 下安装mysql-5.7.16
    GNS3连接虚拟机
    cain使用教程
    数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构
  • 原文地址:https://www.cnblogs.com/biehongli/p/6972221.html
Copyright © 2011-2022 走看看