spring MVC入门教程

时间:2023-12-05 13:39:44

写一个spring mvc后台传值到前台的一个小例子。

分为以下几个步骤:

1.创建web项目。

导入项目包。具体有如下:

  • spring-aop-4.0.4.RELEASE.jar
  • spring-beans-4.0.4.RELEASE.jar
  • spring-context-4.0.4.RELEASE.jar
  • spring-core-4.0.4.RELEASE.jar
  • spring-expression-4.0.4.RELEASE.jar
  • spring-web-4.0.4.RELEASE.jar
  • spring-webmvc-4.0.4.RELEASE.jar
  • commons-logging-1.1.1.jar

2.配置web.xml文件,配置servlet

<servlet>
  <servlet-name>helloSpring</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!--<init-param>这个参数是为了加载下一步配置的spring配置文件的 ,默认spring mvc的加载是将spring配置文件放在web-inf下而且名称是web.xml配置的该 servlet名字-servlet.xml  会在启动时自动去改路径寻找该配置文件,我们这里将它放在了src下去加载-->

<init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:helloSpring-servlet.xml</param-value>
  </init-param>

<!--在项目启动时加载配置文件-->
  <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>
  <servlet-name>helloSpring</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>

3.添加spring配置文件并进行配置。

我的spring配置文件叫helloSpring-servlet.xml,放在src下。

在<beans></beans>元素里添加如下内容:

<!-- 配置自动扫描包路径,此处采用注解方式 -->
 <context:component-scan base-package="com.demo"></context:component-scan>
 <!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 ,会在web-inf/views/下找到你返回的页面名字.jsp-->
 <bean
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/"></property>
  <property name="suffix" value=".jsp"></property>
 </bean>

4.编写逻辑代码:在src下创建com.demo.controller包

编写类MySpringController。具体代码如下:

package com.demo;

import org.omg.CORBA.Request;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller//注解,配置扫描到controller

public class MySpringController {

//方法
 @RequestMapping(value="/hello",method=RequestMethod.GET)//访问请求的路径,value值是hello

//该方法需要一个ModelMap,它会存储信息,这将hello springMVC字符串放到message里

public String helloWorld(ModelMap map){
  map.addAttribute("message","hello springMVC");

//返回一个string hello,会在配置文件中的前缀后缀进行结合,就相当于跳转到web-inf/views/hello.jsp

return "hello";
 }
 }

----------------------这个方法也可以这么写

@RequestMapping(value="/hello",method=RequestMethod.GET)

public ModelAndView  helloWorld()

{

ModelAndView modelAndView=new ModelAndView("hello");//ModelAndView跳转的页面

modelAndView.addObject("message","hello springMVC");//添加到request域存放数据

return modelAndView;

}

5.去web-inf创建views文件夹,在views文件夹下创建hello.jsp

在jsp页面用el表达式就可以取到数值

<body>
    ${message } <br>

<!--如果没有取到值可以用${requestScope.message}取值,因为它默认存放到request域中-->

</body>

6.访问http://localhost:8080/项目名/hello会跳转到hello.jsp显示数据。

至此一个简单的spring mvc就搭建完成。

个人搭建的,如果有问题欢迎指正。