四、Maven下创建SSH2工程

 

四、创建SSH2工程(重点)

需求,用SSH2集成框架搭建工程mavenweb ,功能为单表的列表查询。

表名称 dep  (部门表)

字段名称

字段类型

字段含义

uuid

bigint

主键:部门编号

name

varchar

部门名称

tele

varchar

部门电话

(一)创建war工程

1. 选择菜单  File ->new -> Other

选择Maven下的Maven Project, next

2. 选中下图红框部分的复选框(跳过骨架),next

 

3. 定义工程坐标

 

注意打包方式选择war工程。

4. 手动添加web.xml 

1)在src /main/webapp 目录下手动创建WEB-INF目录

2)将资源文件夹下的web.xml拷贝至WEB-INF目录

 

5. 添加插件

将下列配置拷贝至pom.xml 

 <build> 

      <plugins>

          <plugin> 

              <groupId>org.apache.maven.plugins</groupId> 

              <artifactId>maven-compiler-plugin</artifactId> 

              <version>2.3.2</version> 

              <configuration> 

                  <source>1.7</source> 

                  <target>1.7</target> 

              </configuration> 

          </plugin> 

          <plugin>

                <groupId>org.apache.tomcat.maven</groupId>

                <artifactId>tomcat7-maven-plugin</artifactId>

                <configuration>

                    <!-- 指定端口 -->

                    <port>8080</port>

                    <!-- 请求路径 -->

                    <path>/</path>

                </configuration>

          </plugin>

      </plugins> 

    </build>

 

点击工程右键  Maven ->  Update Project ...

6. pom.xml中添加servlet-api

因为我们创建的是war工程 ,需要response request 等对象,而这些对象是在servlet-api中的,所以我们需要添加servlet-api ,才能保证工程正常编译。

注意:必须指定scopeprovided , 这是设置依赖范围,我们后边的章节会详细讲解。如果设置则启动会报错。

  <dependencies>

    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>servlet-api</artifactId>

        <version>2.5</version>

        <scope>provided</scope>

    </dependency>

  </dependencies>

添加后更新工程

7. 创建index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>测试页面</title>

</head>

<body>

开启神秘的Maven世界~

</body>

</html>

部署运行测试   执行命令

tomcat7:run

用浏览器测试,地址: http://localhost:8080/index.jsp

(二)添加SSH依赖

SSH2框架需要添加的依赖如下:

<dependencies>

  <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

    <version>2.5</version>

    <scope>provided</scope>

  </dependency>

  <dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-core</artifactId>

    <version>5.0.7.Final</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-core</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-beans</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-orm</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-test</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context-support</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-aop</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-web</artifactId>

    <version>4.2.4.RELEASE</version>

  </dependency>

  <dependency>

    <groupId>org.aspectj</groupId>

    <artifactId>aspectjweaver</artifactId>

    <version>1.8.7</version>

  </dependency>

  <dependency>

    <groupId>org.apache.struts</groupId>

    <artifactId>struts2-core</artifactId>

    <version>2.3.24</version>

  </dependency>

  <dependency>

    <groupId>org.apache.struts</groupId>

    <artifactId>struts2-spring-plugin</artifactId>

    <version>2.3.24</version>

  </dependency>

  <dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.6</version>

  </dependency>

  <dependency>

    <groupId>jstl</groupId>

    <artifactId>jstl</artifactId>

    <version>1.2</version>

  </dependency>

</dependencies>

(三)SSH工程搭建

1. 建立包结构

2. 添加spring配置文件

   拷贝资源下的配置文件文件夹中的applicationContext.xml

3. 添加struts配置文件

<?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>

    <package name="default"namespace="/"extends="struts-default">           

    </package>

</struts>

 

 

4. 修改web.xml 配置文件,添加以下配置

<listener>

    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath*:applicationContext.xml</param-value>

    </context-param>

    <filter>

       <filter-name>openSessionInView</filter-name>

    <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>openSessionInView</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <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>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

 

5. 编写实体类

package cn.itcast.mavenweb.domain;

/**

 * 部门

 * @author Administrator

 *

 */

publicclass Dep {

 

    private Long uuid;

    private String name;

    private String tele;

       

    public Long getUuid() {

        returnuuid;

    }

    publicvoid setUuid(Long uuid) {

        this.uuid = uuid;

    }

    public String getName() {

        returnname;

    }

    publicvoid setName(String name) {

        this.name = name;

    }

    public String getTele() {

        returntele;

    }

    publicvoid setTele(String tele) {

        this.tele = tele;

    }  

}

6. 编写映射文件

src/main/resources 下创建包cn.itcat.mavenweb.domain

在此目录下创建映射文件dep.hbm.xml ,内容如下:

<?xml version="1.0"encoding="utf-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="cn.itcast.mavenweb.domain.Dep" table="dep">

        <id name="uuid">           

        </id>

        <property name="name"/>    

        <property name="tele"/>    

    </class>

</hibernate-mapping>

 

7. 创建数据访问层接口DepDao

package cn.itcast.mavenweb.dao;

 

import java.util.List;

 

import cn.itcast.mavenweb.domain.Dep;

 

/**

 * 部门Dao

 * @author Administrator

 *

 */

publicinterface DepDao {

   

    public List<Dep> getList();

}

 

8. 创建数据访问类DepDaoImpl

package cn.itcast.mavenweb.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import cn.itcast.mavenweb.dao.DepDao;

import cn.itcast.mavenweb.domain.Dep;

/**

 * 部门数据访问类

 * @author Administrator

 *

 */

publicclass DepDaoImpl extends HibernateDaoSupport implements DepDao {

 

    @Override

    public List<Dep> getList() {

       

        return (List<Dep>) getHibernateTemplate().find("from Dep");

    }

}

 

9. 创建业务逻辑层接口

package cn.itcast.mavenweb.service;

 

import java.util.List;

 

import cn.itcast.mavenweb.domain.Dep;

 

/**

 * 部门业务层接口

 * @author Administrator

 *

 */

publicinterface DepService {

 

    /**

     * 全部列表

     * @return

     */

    public List<Dep> getList();

}

 

 

10. 创建业务逻辑类

package cn.itcast.mavenweb.service.impl;

 

import java.util.List;

 

import cn.itcast.mavenweb.dao.DepDao;

import cn.itcast.mavenweb.domain.Dep;

import cn.itcast.mavenweb.service.DepService;

/**

 * 部门业务逻辑类

 * @author Administrator

 *

 */

publicclass DepServiceImpl implements DepService{

 

    private DepDao depDao;

   

    publicvoid setDepDao(DepDao depDao) {

        this.depDao = depDao;

    }

 

    /**

     * 全部列表

     */

    public List<Dep> getList() {

        // TODO Auto-generated method stub

        returndepDao.getList();

    }

 

}

 

11. 创建action

package cn.itcast.mavenweb.web.action;

 

import java.util.List;

 

import org.apache.struts2.ServletActionContext;

 

import com.opensymphony.xwork2.ActionContext;

 

import cn.itcast.mavenweb.domain.Dep;

import cn.itcast.mavenweb.service.DepService;

 

/**

 *  部门action

 * @author Administrator

 *

 */

publicclass DepAction {

 

    private DepService depService;

       

    publicvoid setDepService(DepService depService) {

        this.depService = depService;

    }

 

 

    public String list(){

        List<Dep> list = depService.getList(); 

        ServletActionContext.getRequest().setAttribute("list", list);

        return"list";

    }

   

}

 

 

12.编写spring配置文件的内容

    <bean id="depDao"class="cn.itcast.mavenweb.dao.impl.DepDaoImpl">

        <property name="sessionFactory"ref="sessionFactory"></property>

    </bean>

   

    <bean id="depService"  class="cn.itcast.mavenweb.service.impl.DepServiceImpl">

        <property name="depDao"ref="depDao"></property>

    </bean>

   

    <bean id="depAction"class="cn.itcast.mavenweb.web.action.DepAction">

        <property name="depService"ref="depService"></property>

    </bean>

 

13. 编写struts配置文件的内容

<action name="dep_*"class="depAction"method="{1}">

      <result name="list">/index.jsp</result>

</action>

 

14. 编写index.jsp的内容

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>测试页面</title>

</head>

<body>

开启神秘的Maven世界~<br>

<c:forEach var="i"items="${list}">

${i.uuid}  ${i.name}  ${i.tele}<br>

</c:forEach>

</body>

</html>

(四)定义变量

pom.xml中插入配置

  <properties>

    <hinernate.version>5.0.7.Final</hinernate.version>

    <spring.version>4.2.4.RELEASE</spring.version>

    <struts.version>2.3.24</struts.version>

  </properties>

此时相当于创建了三个变量。

我们在下面可以通过el表达式引用这三个变量的值

 <dependency>

    <groupId>javax.servlet</groupId>

    <artifactId>servlet-api</artifactId>

    <version>2.5</version>

    <scope>provided</scope>

  </dependency>

  <dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-core</artifactId>

    <version>${hibernate.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-core</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-beans</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-orm</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-test</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-context-support</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-aop</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-web</artifactId>

    <version>${spring.version}</version>

  </dependency>

  <dependency>

    <groupId>org.aspectj</groupId>

    <artifactId>aspectjweaver</artifactId>

    <version>1.8.7</version>

  </dependency>

  <dependency>

    <groupId>org.apache.struts</groupId>

    <artifactId>struts2-core</artifactId>

    <version>${struts.version}</version>

  </dependency>

  <dependency>

    <groupId>org.apache.struts</groupId>

    <artifactId>struts2-spring-plugin</artifactId>

    <version>${struts.version}</version>

  </dependency>

  <dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.6</version>

  </dependency>

  <dependency>

    <groupId>jstl</groupId>

    <artifactId>jstl</artifactId>

    <version>1.2</version>

  </dependency>

 

这样做的好处是一旦版本发生变化,直接修改属性标签里的值即可。

(五)打war

执行命令package 即可将war工程打成war工程。

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">





posted @ 2018-04-08 13:44  zhaoxuan734  阅读(174)  评论(0编辑  收藏  举报