• 使用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

  • 相关阅读:
    Cannot find a free socket for the debugger
    maven自己创建jar坐标(比如oracle驱动包)
    svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法
    java发http请求
    Spring MVC
    函数节流 防抖
    js 执行顺序
    铺平多维对象数组 js
    vue 线上图标404
    vue-devtools--------vue浏览器工具
  • 原文地址:https://www.cnblogs.com/yinxiang/p/4078144.html
Copyright © 2020-2023  润新知