搭建环境:mysql5.2+tomcat(apache-tomcat-7.0.90)+jdk(jdk1.7.0_55)
开发工具:eclipse(Eclipse Java EE IDE for Web Developers.)
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">
再新建一个test.jsp
hello.jsp--用来测试一个大神级的演示在页面输出Hello world
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello world
test.jsp --用来演示方法绑定参数的方式的演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello world!
Hello spring MVC !
${test }
${requestScope.test }
com.test.controller, 建一个类为TestController
com.test.domain包,建一个类Users
上代码:
TestController.java
package com.test.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.test.domain.Users;
//注解用于标识类,为控制器类,同时注册一个bean到spring的上下文件中。
@Controller
//控制器类的地址映射:注解为控制器指定处理 URL请求映射
@RequestMapping("/test")
public class TestController {
//方法的映射的地址最好与方法名称相同。
@RequestMapping("/hello")
public String hello()
{
return "hello";
}
//方法的映射
@RequestMapping("/test")
public String test()
{
//返回的视图的名称
//由视图解析器:定义跳转的文件的前后缀
//
//
///WEB-INF/jsp/test.jsp 对应的物理视图名称
return "test";
}
//接收请求参数的绑定
//测试地址 http://localhost:8080/springmvc/test/test1?uname=mike&upwd=11
//当地址栏中参数和方法的参数名称相同时会自动赋 值
@RequestMapping("/test1")
public String test1(String uname,String upwd)
{
System.out.println("uname="+uname+"\t"+"upwd="+upwd);
return "test";
}
//测试地址 http://localhost:8080/springmvc/test/test2?a=mike&b=11
//当地址栏中参数与方法参数名称不一致时,用@RequestParam()将请求参数与方法中参数进行绑定
@RequestMapping("/test2")
public String test2(@RequestParam("a")String uname1,@RequestParam("b")String upwd1)
{
System.out.println("uname1="+uname1+"\t"+"upwd1="+upwd1);
return "test";
}
//测试地址 http://localhost:8080/springmvc/test/test3?uname=allen&upwd=123
//当地址栏中参名称与方法中参数对象的属性名称相同时,会自动给对象的属性赋值
@RequestMapping("/test3")
public String test3(Users users)
{
System.out.println(users.getUname()+"\t"+users.getUpwd());
return "test";
}
//向前台页面传参数
@RequestMapping("/show")
//spring mvc 调用方法时传传入一个map对象,在方法内部可以使用map和添加新的数据,它是在请求作用域内的相当于request
//前台页面页直接收。${requestScope.test}
public String show(Map
{
map.put("test", "哥们,我去前台了!!,呵呵...");
return "test";
}
//使用@ResponseBody时,把对象转成json数据,出错时,,缺少转换依赖的jar包,故报错
//错误信息HTTP Status 406 – Not Acceptable
//jar包为jackson的jar包
@ResponseBody
@RequestMapping("/testjson")
public List
{
Users u1=new Users(1000, "mike", "123");
Users u2=new Users(1001, "rose", "123");
Users u3=new Users(1002, "allen", "123");
Users u4=new Users(1003, "smith", "123");
Users u5=new Users(1004, "李明", "123");
List
list.add(u1);
list.add(u2);
list.add(u3);
list.add(u4);
list.add(u5);
return list;
}
}
Users.java
package com.test.domain;
public class Users {
private Integer uid;
private String uname;
public Users(){}
public Users(Integer uid, String uname, String upwd) {
super();
this.uid = uid;
this.uname = uname;
this.upwd = upwd;
}
private String upwd;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
}
5.测试
1、测试输出Hello word
http://localhost:8080/springmvc/test/hello
2.地址栏中参数与方法中参数相同自动赋值
http://localhost:8080/springmvc/test/test1?uname=mike&upwd=11
3.当地址栏中参数与方法参数名称不一致时,用@RequestParam()将请求参数与方法中参数进行绑定
http://localhost:8080/springmvc/test/test2?a=mike&b=11
4.当地址栏中参名称与方法中参数对象的属性名称相同时,会自动给对象的属性赋值
测试地址 http://localhost:8080/springmvc/test/test3?uname=allen&upwd=123
http://localhost:8080/springmvc/test/show
6.输出json数据格式:需要jackson的jar包.如果少jar 时spring mvc报406错误
http://localhost:8080/springmvc/test/testjson
7.SpringMVC常用注解
@Controller 负责注册一个bean 到spring 上下文中
@RequestMapping 应用于类和方法级别的。为控制器和方法指定可以处理URL 请求映射
@RequestBod用于生成json数据,向面页输出
@RequestParam 请求参 数与方法参数名称不相同时,用它来把请求参数和方法参数绑定
@PathVariable 用于占位符绑定 绑定 URL 占位符到方法的参数
本例子下载地址
https://download.csdn.net/download/handsome221/10721056