使用Maven构建项目3——模块化开发

将Maven-SSM项目以层为单位拆分,按模块开发

1.创建父项目,在父项目中加入依赖;

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sikiedu</groupId>
  <artifactId>MavenSSM2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
  <properties>
      <!-- lib version -->
      <spring.version>5.0.8.RELEASE</spring.version>
      <mybais.version>3.4.6</mybais.version>
      <mybatis-spring.version>1.3.2</mybatis-spring.version>
      <mysql-connector.version>5.1.46</mysql-connector.version>
      <ojdbc7.version>12.1.0.2.0</ojdbc7.version>
      <druid.version>1.0.16</druid.version>
      <aopalliance.version>1.0</aopalliance.version>
      <aspectj.weaver.version>1.6.4.RELEASE</aspectj.weaver.version>
      <commons.logging.version>1.1.1</commons.logging.version>
      <jstl.version>1.2</jstl.version>
      <log4j.version>1.2.16</log4j.version>
      <slf4j-api.version>1.6.1</slf4j-api.version>
      <slf4j-nop.version>1.6.4</slf4j-nop.version>
      <fileupload.version>1.3.1</fileupload.version>
      <jackson.version>2.9.6</jackson.version>
      <servlet-api.version>8.5.32</servlet-api.version>
      <jsp-api.version>8.5.32</jsp-api.version>
      
      <!-- plugins version -->
      <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
      <tomcat7-maven-plugin.version>2.2</tomcat7-maven-plugin.version>
  </properties>
  
  <!-- 锁定版本, -->
  <dependencyManagement>
      <dependencies>
           <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
         <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-web</artifactId>
           <version>${spring.version}</version>
        </dependency>
        <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-tx</artifactId>
           <version>${spring.version}</version>
        </dependency>
        <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>${spring.version}</version>
        </dependency>
        <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</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-context-support</artifactId>
           <version>${spring.version}</version>
        </dependency>
        <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-test</artifactId>
           <version>${spring.version}</version>
        </dependency>
        <!-- spring end -->
        
         <!-- mybais -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybais.version}</version>
        </dependency>
        <!-- mybatis - spring 整合包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
        </dependency>
        
        <!-- json -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- json end -->
      </dependencies>
  
  </dependencyManagement>
  
  <dependencies>
    <!-- spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-tx</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-jdbc</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-aop</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-context-support</artifactId>
    </dependency>
    <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-test</artifactId>
    </dependency>
    <!-- spring end -->
        
    <!-- mybais -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
    </dependency>
    
    <!-- mybatis - spring 整合包-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
    </dependency>

    <!-- mysql -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector.version}</version>
    </dependency>

    <dependency>
        <groupId>cn.easyproject</groupId>
        <artifactId>ojdbc7</artifactId>
        <version>${ojdbc7.version}</version>
    </dependency>
    <!-- mysql end -->
    
     <!-- 阿里巴巴的数据库连接池 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
    </dependency>
    
    <!-- aop -->
    <dependency>
        <groupId>aopalliance</groupId>
        <artifactId>aopalliance</artifactId>
        <version>${aopalliance.version}</version>
    </dependency>
    
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>com.springsource.org.aspectj.weaver</artifactId>
        <version>${aspectj.weaver.version}</version>
    </dependency>
    <!-- aop end -->
    
    <!-- logging -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>com.springsource.org.apache.commons.logging</artifactId>
        <version>${commons.logging.version}</version>
    </dependency>

    <!-- jsp标准标签库 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
    </dependency>
    
    <!-- log -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-api.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-nop</artifactId>
        <version>${slf4j-nop.version}</version>
    </dependency>
    <!-- log end -->

    <!--文件上传-->
    <dependency>  
        <groupId>commons-fileupload</groupId>  
        <artifactId>commons-fileupload</artifactId>  
        <version>${fileupload.version}</version>  
    </dependency>
    
    <!-- json -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
    </dependency>
    <!-- json end -->
    
    <!-- servlet-api 8.5.32 -->
    <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat-servlet-api</artifactId>
          <version>${servlet-api.version}</version>
          <scope>provided</scope>
      </dependency>
    <!-- jsp-api 8.5.32 -->
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jsp-api</artifactId>
        <version>${jsp-api.version}</version>
        <scope>provided</scope>
    </dependency>
  </dependencies>
  
  <build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>${maven-compiler-plugin.version}</version>
              <configuration>
                  <source>1.8</source>
                <target>1.8</target>              
              </configuration>
          </plugin>
          
          <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <version>${tomcat7-maven-plugin.version}</version>
              <configuration>
                  <url>http://localhost:8080/manager/text</url>
                  <username>joey</username>
                  <password>123123</password>
              </configuration>
          </plugin>
          
      </plugins>
      
      <!-- 配置文件放行 -->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <!-- 放行main/resources下的配置文件 如果不放行spring mybatis等配置文件不会被打到包里从而导致错误 -->
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
  </build>
  
 
</project>
添加下面代码到pom.xml

2.创建mapper层子项目继承父项目;

3.maven-ssm-base/maven-ssm-mapper相关(此时没有bean对象,导致mapper.java中报错,可以根据第四步中先创建bean对象)

(1)在/maven-ssm-base/maven-ssm-mapper中添加/maven-ssm-base/maven-ssm-mapper/src/main/java/com/azuma/mapper/ItemMapper.java和/maven-ssm-base/maven-ssm-mapper/src/main/java/com/azuma/mapper/ItemMapper.xml

import java.util.List;

import com.azuma.bean.ItemInfo;

public interface ItemMapper {

    List<ItemInfo> getAllList();

}
ItemMapper.java
<?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.azuma.mapper.ItemMapper">
      
    <select id="getAllList" resultType="ItemInfo">
        SELECT * FROM item_info 
    </select>

  </mapper>
maven-ssm-mapper/src/main/java/com/azuma/mapper/ItemMapper.xml

(2)/maven-ssm-mapper/pom.xml中添加父类bean依赖

  

4./maven-ssm-base/maven-ssm-bean相关

(1)/maven-ssm-bean/src/main/java/com/azuma/bean/ItemInfo.java

/**
 * 游戏信息bean
 */
public class ItemInfo {
    
    //id
    private String item_id;
    //name
    private String item_name;
    //type
    private String item_type;
    //price
    private Double item_price;
    
    public String getItem_id() {
        return item_id;
    }
    public void setItem_id(String item_id) {
        this.item_id = item_id;
    }
    public String getItem_name() {
        return item_name;
    }
    public void setItem_name(String item_name) {
        this.item_name = item_name;
    }
    public String getItem_type() {
        return item_type;
    }
    public void setItem_type(String item_type) {
        this.item_type = item_type;
    }
    public Double getItem_price() {
        return item_price;
    }
    public void setItem_price(Double item_price) {
        this.item_price = item_price;
    }
    @Override
    public String toString() {
        return "ItemInfo [item_id=" + item_id + ", item_name=" + item_name + ", item_type=" + item_type
                + ", item_price=" + item_price + "]";
    }

}
ItemInfo.java

(2)/maven-ssm-bean/src/main/java/com/azuma/bean/User.java(如果显示jdk有问题,重新构建jdk路径)

public class User {

    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "User [username=" + username + ", password=" + password + "]";
    }
    
    
}
User.java

5.子项目可以继承父项目的依赖;

6.利用junit测试mapper模块项目;

(1)/maven-ssm-mapper/pom.xml中添加Junit依赖(设置scope属性一般是test)

(2)mapper接口右键新建example,搜索Junit,选择Junit4,然后放在src/test/java目录下,然后点击finish,会自动创建一个testjava类

 

 (3)/maven-ssm-mapper/src/test/java/com/azuma/mapper/ItemMapperTest.java

package com.azuma.mapper;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.azuma.bean.ItemInfo;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext_mapper.xml")
public class ItemMapperTest {

    @Autowired
    private ItemMapper itemMapper;
    
    @Test
    public void test() {
        
        List<ItemInfo> allList = itemMapper.getAllList();
        
        for (ItemInfo itemInfo : allList) {
            System.out.println("itemInfo = " + itemInfo);
            
        }
        
    }

}
/maven-ssm-mapper/src/test/java/com/sikiedu/mapper/ItemMapperTest.java

(4)右键运行test,看看能不能拿到数据库的数据

7.Maven的依赖传递,与依赖版本管理;

(1)依赖传递:添加依赖的jar包如果还依赖其他jar包,则在添加时会一起引入;

(2)依赖冲突:Base-project由3个子项目组成,A-project依赖Tools.jar 1.0版本,C-project依赖Tools.jar 2.0版本,根据依赖传递机制,Base-project将同时依赖Tools.jar两个版本,但这造成了冲突。根据路径最近获胜策略,该项目最终依赖Tools.jar 1.0,导致C-project无法调用getAll方法从而报错,因此我们要手动选择一个适合项目的版本。

 

(Maven模块化开发项目依赖关系)

(3)解决依赖冲突的办法:

  a.直接声明:直接添加Tools.jar 2.0依赖;

  b.排除:使用<dependency>标签中的<exclusions>标签排除A-project中的Tools.jar 1.0依赖;

  例子:

  c.依赖管理,版本锁定:<dependencyManagement>

    i.<dependencyManagement>是依赖管理,该标签下添加的<dependencies>可以声明依赖,但是不会引入jar包;

    ii.只有声明在<project>标签下<dependencies>中的依赖才会被引用到项目中;

    iii.在<dependencyManagement>下添加jar包坐标后,<project>标签下<dependencies>标签的版本号可以忽略不写;

    iv.< properties>标签可以自定义版本号,用el表达式赋值给<version>标签;

    v.统一管理jar包版本,修改方便;

8. 创建scervice模块项目,利用junit测试service模块项目;

(1)新建一个maven Module,并继承父类,package选择jar包

 

 (2)添加service.java

import java.util.List;

import com.azuma.bean.ItemInfo;

public interface ItemService {

    List<ItemInfo> getAllList();

}
/maven-ssm-service/src/main/java/com/sikiedu/service/ItemService.java

(3)添加serviceimpl.java

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.azuma.bean.ItemInfo;
import com.azuma.mapper.ItemMapper;

@Service
public class ItemServiceImpl implements ItemService {

    @Autowired
    private ItemMapper itemMapper;
    
    @Override
    public List<ItemInfo> getAllList() {
        return itemMapper.getAllList();
    }

}
/maven-ssm-service/src/main/java/com/sikiedu/service/ItemServiceImpl.java

(4)添加service相关xml配置文件

  a.applicationContext_service.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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
        
        <!-- 开启注解扫描 -->
        <context:component-scan base-package="com.azuma.service"/>
        
</beans>
/maven-ssm-service/src/main/resources/applicationContext_service.xml

  b.applicationContext_transaction.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:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
        
        <!-- 事务核心管理器 -->
        <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
        
        <!-- 开启注解事务 -->        
        <tx:annotation-driven transaction-manager="transactionManager"/>
        
</beans>
/maven-ssm-service/src/main/resources/applicationContext_transaction.xml

(5)在service层的pom.xml导入mapper中导包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.sikiedu.maven-ssm</groupId>
    <artifactId>maven-ssm-base</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>maven-ssm-service</artifactId>
  <dependencies>
      <dependency>
          <groupId>com.azuma.maven-ssm</groupId>
          <artifactId>maven-ssm-mapper</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency>
      
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
      </dependency>
      
  </dependencies>
</project>
/maven-ssm-service/pom.xml

(6)在/maven-ssm-service/src/main/java/com/azuma/service/ItemServiceImpl.java中右键new other新建一个Junit测试,选择Junit4,放在/maven-ssm-service/src/test/java下

import static org.junit.Assert.*;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.azuma.bean.ItemInfo;

@RunWith(SpringJUnit4ClassRunner.class)
/*@ContextConfiguration(locations = {"classpath:applicationContext_service.xml",
                                   "classpath:applicationContext_mapper.xml"})*/

@ContextConfiguration("classpath*:applicationContext_*.xml")
public class ItemServiceImplTest {

    @Autowired
    private ItemService itemService;
    
    @Test
    public void test() {
        List<ItemInfo> allList = itemService.getAllList();
        
        for (ItemInfo itemInfo : allList) {
            System.out.println("itemInfo = " + itemInfo);
        }
    }

}
/maven-ssm-service/src/test/java/com/sikiedu/service/ItemServiceImplTest.java

(7)上一步如果新建Junit测试错误,因为Junit包没能导入service中,因为在mapper/pom.xml中的scope属性是test,无法传递给service,所以在service/pom.xml中添加Junit依赖包即可

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
      </dependency>
/maven-ssm-service/pom.xml

(8)进行Junit测试即可

9.依赖作用域对依赖传递的影响;

10.创建controller模块项目,运行程序;

(1)新建一个Controller子类

 (2)在WEB-INF下添加web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>MavenSSM1</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>
  
   <!-- 静态资源放行 -->
  <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.css</url-pattern>
      <url-pattern>*.ttf</url-pattern>
      <url-pattern>*.woff</url-pattern>
      <url-pattern>*.js</url-pattern>
      <url-pattern>*.png</url-pattern>
      <url-pattern>*.jpg</url-pattern>
      <url-pattern>*.gif</url-pattern>
  </servlet-mapping>
  
  <!-- 过滤器  解决表单post提交乱码问题 -->
  <filter>
      <filter-name>encoding</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
          <param-name>encoding</param-name>
          <param-value>utf-8</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>encoding</filter-name>
      <!-- 拦截全部 /* -->
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <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>
  
  <!-- 配置springmvc前端控制器 和读取配置文件 -->
  <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <init-param>
          <!-- 读取配置文件 -->
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
      </init-param>
  </servlet>
  <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <!-- / -->
      <url-pattern>/</url-pattern>
  </servlet-mapping>
  
</web-app>
/maven-ssm-controller/src/main/webapp/WEB-INF/web.xml

(3)报错的话,配置一下jdk

(4)/maven-ssm-controller/pom.xml中导入service的jar包

      <dependency>
          <groupId>com.azuma.maven-ssm</groupId>
          <artifactId>maven-ssm-service</artifactId>
          <version>0.0.1</version>
      </dependency>
/maven-ssm-controller/pom.xml

(5)在/maven-ssm-controller/src/main/webapp/WEB-INF/jsp下,添加相关jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Insert title here</title>
</head>
<body>
    <c:forEach items="${itemList }" var="item">
        <label>${item.item_name }</label> <label>${item.item_type }</label>
    </c:forEach>

</body>
</html>
/maven-ssm-controller/src/main/webapp/WEB-INF/jsp/item_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Insert title here</title>
</head>
<body>
    用户名:<label>${User.username }</label>
    密码:<label>${User.password }</label>
</body>
</html>
/maven-ssm-controller/src/main/webapp/WEB-INF/jsp/list.jsp

(6)给/maven-ssm-controller配置一个jdk,以免报错

(7)启动tomcat进行测试,右键项目run as-maven install--clean tomcat7:deploy(第一次部署)

(8)出来可以在maven-ssm-controller运行该项目,也可以在父类项目中运行该项目

猜你喜欢

转载自www.cnblogs.com/AzumaRinne/p/12630610.html