zoukankan      html  css  js  c++  java
  • 使用InstelliJ IDEA创建Spring MVC应用程序

    环境版本

    Windows 8.1
    IDE:InstelliJ IDEA 13   
    Spring:Spring 4.1.1 & Spring MVC 4.1.1   
    WebLogic 10.3.0
    JDK:1.6

    前文中,我们创建的Web应用程序,其实就是基于Spring MVC的Web项目。

    因为我们在创建时就选择了Spring 4.1.1和Spring MVC 4.1.1,IDEA会帮我们自动下载相关的Jar包,所以我们只需要完成一些配置。

    (1)打开web.xml,编辑内容:

    <web-app version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <servlet-name>mvc-dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        
        <!-- Log4j -->
        <context-param>
            <param-name>log4jConfigLocation</param-name>
            <param-value>/WEB-INF/log4j.properties</param-value>
        </context-param>
        
        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
    </web-app>

    其中需要注意,如果指定了mvc-dispatcher这个名称,那么则必须创建mvc-dispatcher开头的文件,用于配置Spring MVC。

    (2)打开mvc-dispatcher-servlet.xml,编辑内容:

    <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:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!-- 扫描所有的controller -->
        <context:component-scan base-package="com.hellomvc.controllers"/>
    
        <!-- 启动注解驱动SpringMVC功能 -->
        <mvc:annotation-driven />
      <!-- 处理静态资源 -->  
        <mvc:default-servlet-handler />
        
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/pages/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
        <!-- tiles配置 -->
        <bean id="viewResolver"    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass">
                <value>org.springframework.web.servlet.view.tiles2.TilesView</value>
            </property>
            <property name="order" value="1" />
        </bean>
    
        <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
            <property name="definitions">
                <list>
                    <value>/WEB-INF/tiles.xml</value>
                </list>
            </property>
        </bean>
    </beans>

    其中需要注意,因为我们在项目中使用了Tiles框架,如果没有使用不用添加.

    另外,<mvc:default-servlet-handler />,因为在web.xml中,我们将DispatcherServlet请求映射配置为"/",所以Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求处理,因此找不到对应处理器将导致错误。采用<mvc:default-servlet-handler />后,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。

    (3)我们在项目中使用Tiles框架,我们再来看看tiles.xml的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE tiles-definitions PUBLIC
           "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
           "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
        <tiles-definitions>
    
            <definition name="base.definition" template="/pages/shared/layout.jsp">
                <put-attribute name="body" value="" />
            </definition>
    
            <definition name="home.*" extends="base.definition">
                <put-attribute name="body" value="/pages/{1}.jsp"/>
            </definition>
    
        </tiles-definitions>

    这里我们定义了一个基础模板"base.definition",对应的模板文件:/pages/shared/layout.jsp,其中定义了一个"body"属性.定义了一个通配模板"home.*"的模板名称,继承于"base.definition",其中的body属性,对应的模板文件:/pages/{1}.jsp,其中{1},根据通配符获得.

    (4)再看看controller类文件

    image

    这里返回"home.index",就会被指向到tiles.xml配置的视图文件.

    (5)视图文件,index.jsp

    image

    (6)最后,看看完整的目录结构:

    image

    (7)运行

    image

  • 相关阅读:
    219. Contains Duplicate II
    189. Rotate Array
    169. Majority Element
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    119. Pascal's Triangle II
    118. Pascal's Triangle
    88. Merge Sorted Array
    53. Maximum Subarray
    CodeForces 359D Pair of Numbers (暴力)
  • 原文地址:https://www.cnblogs.com/yinxiang/p/4078144.html
Copyright © 2011-2022 走看看