zoukankan      html  css  js  c++  java
  • JAVA入门[5]-初步搭建SpringMVC站点

    一、新建Module

    1.新建Module,类型如下图所示:

    Image(25)

    Image(26)

    2.为项目添加Spring框架支持,操作步骤如下:

    首先在Module右键->Add Framework Support:

    Image(28)

    2.Spring节点,选中Create empty spring-config.xml

    Image(29)

    3.微调站点代码结构,添加controller和jsp文件存放目录。调整后的代码结构如下:

    Image(30)

    4.在pom.xml引入springmvc依赖包:

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.5.RELEASE</version>
    </dependency>

    二、配置web.xml

    Spring MVC自带了一个Dispatcher Servlet,全名是org.springframework.web.servlet.DispatcherServlet。

    1.我们在web.xml中配置节点servlet和servlet-mapping:

    <servlet>
      <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>springmvc</servlet-name>
      <url-pattern>/</url-pattern>
    </servlet-mapping>

    2.说明:

    • url-pattern为 /表示所有请求都被映射到DispatcherServlet。
    • 按照约定,初始化时会自动查找WEB-INF下命名规则为{servletname}-servlet.xml的文件,本例中对应springmvc-servlet.xml。

    3.如果想放在其他目录下,需要在servlet中的init-param节点进行设置,param-name必须为contextConfigLocation,param-value为目标路径。比如我们想把spring配置文件放在/WEB-INF/config/springmvc.xml,可以如下配置:

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/config/springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    在该项目中我们使用第一种方式。

    三、controller和view

    MVC框架有model、view、controller三部分组成。model一般为一些基本的Java Bean,controller用于处理网站的请求,view用于进行相应的页面显示。

    1.controller

    在srcmainjava中新建一个package名称为com.cathy.controller,然后新建类CategroyController.java。

    @Controller
    public class CategoryController {
    
        @RequestMapping(value = "/category/edit")
        public String Edit() {
            return "edit";
        }
    
        @RequestMapping("/category/detail")
        public String Detail(){
            return "detail";
        }
    }

    几点说明:

    ①@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;

    ②@RequestMapping()注解:用于定义一个请求映射,value为请求的url;

    ③return "edit":处理完该请求后返回的页面,此请求返回 edit.jsp页面。

    2.view

    在WEB-INF/jsp/目录下新建两个jsp页面:edit.jsp和detail.jsp

    3.配置springmvc-servlet.xml

    回到mvc-dispatcher-servlet.xml,进行相关配置。首先加入component-scan标签,指明controller所在的包,并扫描其中的注解

    <context:component-scan base-package="com.cathy.controller"></context:component-scan>
    
    <mvc:annotation-driven></mvc:annotation-driven>

    然后配置ViewResolver

    <!--View Resolver-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    3.遇到问题:

    ①运行报错:

    org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cacheManager' available

    ②解决方法:

    修改springmvc-servlet.xml

    xmlns:mvc="http://www.springframework.org/schema/cache

    改为

    xmlns:mvc="http://www.springframework.org/schema/mvc

    xsi也相应修改

    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"

    ③完整的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: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.cathy.controller"></context:component-scan>
    
        <!--开启注解-->
        <!--<mvc:annotation-driven></mvc:annotation-driven>-->
    
        <!--View Resolver-->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    </beans>
    springmvc-servlet.xml

    四、运行

    按照上一篇 JAVA入门[4]-IntelliJ IDEA配置Tomcat 配置Run Configuration,然后ctrl+f5运行,测试url:

    http://localhost:8091/category/detail/

    http://localhost:8091/category/edit/

  • 相关阅读:
    20170803 Airflow自带的API进行GET 和POST动作部分内容
    20170731 培训Bootstrap
    20170728 Celery项目 后台处理SQL SERVER的一个异常
    python 之 递归
    编译型语言和解释型语言的区别
    如何在命令行中让python2和python3同存
    bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级——分层图+dijkstra
    单调栈题目总结
    汕头市队赛SRM15
    codevs 1269 匈牙利游戏——次短路(spfa)
  • 原文地址:https://www.cnblogs.com/janes/p/6405595.html
Copyright © 2011-2022 走看看