• java使用maven创建springmvc web项目


    创建maven项目,使用maven-archetype-webapp

    创建完成后首先是在pom.xml里增加maven的依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    接着是在web.xml的跟节点增加DispatcherServlet的配置

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

    指明了由org.springframework.web.servlet.DispatcherServlet类来处理所有的URL(<url-pattern>/</url-pattern>)请求.

    然后,在WEB-INF目录下,新建一个springmvc-servlet.xml文件,因为我们在web.xml中定义了一个名为springmvc的servlet,默认的springmvc配置文件名就是/WEB-INF/{servletname}-servlet.xml。下面是springmvc-servlet.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:p="http://www.springframework.org/schema/p"
        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-4.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-4.0.xsd        
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
        <context:component-scan base-package="springmvc2.controllers" />
        <mvc:annotation-driven />
        <mvc:resources location="/WEB-INF/static/" mapping="/static/**" />
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/pages/" />
            <property name="suffix" value=".jsp" />
        </bean>
    </beans>

    <context:component-scan base-package="springmvc2.controllers" />告诉spring,在启动时扫描springmvc2.controllers包,我们将会在这个包内定义我们的Controller类。还指明了通过org.springframework.web.servlet.view.InternalResourceViewResolver策略来寻找View。前缀和后缀的意思是,当我们的Action方法返回”index”时,InternalResourceViewResolver策略会将index拼接上前缀和后缀,也就是/WEB-INF/pages/index.jsp,这就是我们要找的视图文件地址。

    接下来,在main目录下新建一个名叫Java的文件夹,这个是为了符合maven的目录结构。

    然后,在java目录下新建一个类,类名为HomeController,包名为springmvc2.controllers。下面是HomeController的代码

    package springmvc2.controllers;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping(value="/home")
    public class HomeController {
        @RequestMapping(value = "/index")
        public String Index(Model model)
        {
            model.addAttribute("msg", "hello,springmvc");
            return "index";
        }
    }

    如果你的包名跟本文的不一样,你要在springmvc的配置文件中也作出相应的修改。 
    在这个类中,我们通过@Controller将其指定为一个Controller,通过@RequestMapping来告诉springmvc它所响应的URL格式。我们通过model.addAttribute("msg", "hello,springmvc");,将一个字符串传递给视图,然后返回视图的名字。

    最后,该创建视图文件了。在WEB-INF目录下新建一个叫pages的文件夹,在pages中新建一个名为index.jsp的文件。内容如下:

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    ${msg}
    </body>
    </html>

    我们通过${msg}来显示出从Action方法中传递过来的数据,${}这种语法叫EL表达式。 
    代码编写完成。用maven编译打包,然后发布到容器中,通过访问localhost:8080/springmvc2/home/index,就会显示出hello,springmvc的文字。

    如果运行结果不是我们希望的hello,springmvc,而是${msg}。 
    导致这个结果的原因是JSP的版本问题,有可能你的项目目前的默认版本是1.2,这个版本默认是不开启EL表达式的。

    解决办法:

    修改web.xml中的web-app节点,加上下面的属性

     <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
          version="3.1">
          ......
      </web-app>

      非原创,为方便以后使用转载,来源:springmvc 开始

  • 相关阅读:
    GDB编辑、搜索源码以及在线帮助
    GDB查看栈信息
    GDB信号处理
    GDB反向调试
    GDB调试多进程程序
    GDB后台调试命令
    GDB non-stop模式
    GDB调试多线程程序
    GDB禁用删除断点
    解决Mac OS下Eclipse、IntelliJ IDEA打开其他窗口默认全屏
  • 原文地址:https://www.cnblogs.com/ilefei/p/6085198.html
Copyright © 2020-2023  润新知