SpringMVC4.2.3 HelloWorld 传参,获取参数demo ,测试成功

今天写了SpringMVC的第一个例子。第一个例子也是困难重重呀

好吧,下面我说说我的思路吧

首先去Spring官方下载最新版本的SpringMVC4.2.3

1,在eclipse中创建一个web工程吧,将下载回来的jar包拷贝到lib目录下


1


2,之前我们使用s2sh时,会有一个applicationContext.xml文件在src目录下

而现在我们不再创建他,而需要创建一个 xxx-servlet.xml的文件在我们项目的 web-inf目录下

同时也在这个目录下创建web.xml的文件

如图所示

[caption id="attachment_641" align="alignnone" width="270"]创建servlet.xml和web.xml文件 创建servlet.xml和web.xml文件[/caption]


3,我们开始配置web.xml吧

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

以上就是我配置的web.xml,我并没有配置init,因为这不是必须的,init用于指定入口的xml


<init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/XXX-servlet.xml</param-value>
</init-param>

范load-on-startup的参数为1,表示启动时就优先启动这里

如果我们没有配置入口的xml,springmvc会自动的去web-inf里寻找 SpringMVCone-servlet.xml的文件

需要说明的是 这里的SpringMVCone-servlet.xml是固定的,因为你没有配置自己的xml文件

SpringMVCone就是我们这里配置的servlet的名字  servlet-name


4,配置我们的springmvc的配置文件

这个配置文件就相当于我们之前的s2sh中applicationContext.xml,而且这个配置文件在web-inf目录下,上面的截图已经说明

我们我们看看他的简单配置:SpringMVCone-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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
			http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-3.0.xsd
			http://www.springframework.org/schema/aop 
			http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
			http://www.springframework.org/schema/tx 
			http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
			http://www.springframework.org/schema/mvc 
			http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
			http://www.springframework.org/schema/context 
			http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
    <!-- 默认的注解映射的支持 -->  
    <mvc:annotation-driven /> 
    
    <!-- 声明使用注解的风格 -->  
    <context:annotation-config/>  
    <!-- 通过扫描包的方式 -->  
    <context:component-scan base-package="com.springmvc.study.one" />  
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/"></property>  
        <property name="suffix" value=".jsp"></property>
	</bean>
</beans>
需要注意的是通过扫描包的方式,这里如果您添加了这句,就表示springmvc会去自动扫描这个包下的所谓的注解文件,就是被@Controller标记的java文件


这里就不需要再次配置这个java文件的全路劲了,如果您再配置就会发生重名错误

这个问题我们之前的 文章 Spring aop执行两次的原因 是类似的

下面的 viewResolver 配置的是我们返回视图情况:

prefix,表示我们视图的路劲,比如我这里配置的是在根目录,您也可以配置在其它的目录,包括web-inf目录

suffix,表示返回视图的文件后缀,我们这里是jsp


5,下面我们来写一个控制器(controller)吧,如下HelloWorld.java


package com.springmvc.study.one;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloWorld {
	
	@RequestMapping(value="/welcome")
	public ModelAndView welcome(@RequestParam String username){
		System.out.println("Hello Workd!"+username);
		
		ModelAndView model = new ModelAndView("welcome","result","Hello Workd!"+username);
		return model;	
	}
}
@Conterller,标记了这是一个控制器,可以被springmvc扫描到


@RequestMapping,标记了通过这个URL来访问这个方法

@RequestParam,这表示获取地址栏的username的参数,注意用这种表示方法,地址栏的参数比如存在,否则会报404错误

当然,我们可以将参数改成这种, welcome(String username)  他不会报错,打印username会是null

这个方法返回的是一个ModeAndView,这个类有很多构造方法,我就不一一说了,我这里的构造方法有三个参数:

第一个,表示返回的文件名是welcome,我们没有指定后缀,因为我们的配置文件已经指明后缀是 .jsp 了

第二个和第三个表示传参,参数是result,值是"Hello Workd!"+username

然后返回一个model即可

需要说明的是 这个方法的返回值也可以是String,目前我所知道的是,由于是String类型,返回的这个字符串只能是视图的地址,而不能传参了吧

6,编写我们的视图文件测试吧


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
   ${result}
</body>
</html>


好了自此,我们的整个HelloWorld就完成了,启动我们的项目

运行

http://localhost:8080/SpringMVCone/welcome?username=java

测试下吧。


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img