入门案例,页面跳转
控制层
package com.mvc.controller;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//加上注解说明是一个控制层
@Controller
//每次都从新的对象中获取请求方法
@Scope("prototype")
//访问路径
@RequestMapping("user")
public class UserController {
//指定对象别名
@InitBinder("userEnt")
public void initBinder(WebDataBinder binder){
binder.setFieldDefaultPrefix("ue.");
}
//说明哈,这里指定对象别名,对应 “添加对象属性2”方法
************************************************************
//访问方法
@RequestMapping(value="/t1")
private String test1(){
System.out.println("请求方法成功");
return "admin/success";
//这里说一哈 "admin/success" 表示的意思是:WebRoot 文件夹下的一个admin文件夹里面的success.jsp页面
}
************************************************************
//重定向 方式跳转
@RequestMapping(value="/t2")
public String test2(){
System.out.println("===重定向跳转成功===");
return "redirect:../admin/success.jsp";
}
************************************************************
//手动接受参数
@RequestMapping(value="/t3")
public String test3(HttpServletRequest request){
System.out.println("===手动接受参数====");
String userName=request.getParameter("userName");
String userSex=request.getParameter("userSex");
System.out.println("userName"+userName+"======="+userSex);
return "admin/success";
}
************************************************************
//自动结接受参数
@RequestMapping(value="/t4")
public String test4(String userName,String userSex,int userAge){
System.out.println("===自动结接受参数====");
System.out.println("userName==>"+userName);
System.out.println("userSex==>"+userSex);
System.out.println("userAge==>"+userAge);
return "admin/success";
}
************************************************************
//添加对象属性
@RequestMapping(value="/t5")
public String test5(@ModelAttribute UserEnt ue,HttpServletRequest request,
HttpSession session){
System.out.println("===添加对象属性====");
System.out.println("ue.getUserName()==>"+ue.getUserName());
//存值
request.setAttribute("reqUe", ue);
session.setAttribute("sesUe", ue);
session.getServletContext().setAttribute("serUe", ue);
return "admin/success";
}
************************************************************
//添加对象属性2
@RequestMapping(value="/t52")
public String test52(@ModelAttribute("userEnt") UserEnt ue,HttpServletRequest request,
HttpSession session){
System.out.println("===添加对象属性====");
System.out.println("ue.getUserName()==>"+ue.getUserName());
//存值
request.setAttribute("reqUe", ue);
session.setAttribute("sesUe", ue);
session.getServletContext().setAttribute("serUe", ue);
return "admin/success";
}
************************************************************
//地址重写
@RequestMapping(value="/{name}/{pwd}/{age}/{path}")
public String test6(@PathVariable String name,@PathVariable String pwd,@PathVariable int age){
System.out.println("===地址重写====");
System.out.println("name==>>"+name+"===>>pwd==>>"+pwd+"===age====>"+age);
return "admin/success";
}
************************************************************
//使用 ModelAndView 对象返回界面传参数
@RequestMapping("/t7")
public ModelAndView test7(HttpServletRequest request, HttpServletResponse response){
System.out.println("===使用 ModelAndView 对象返回界面传参数====");
//手动接受参数
String name=request.getParameter("name");
String pwd=request.getParameter("pwd");
//存入对象
UserEnt ue=new UserEnt();
ue.setUserName(name);
ue.setUserPwd(pwd);
//创建模型对象指定跳转界面
ModelAndView mav=new ModelAndView("admin/success");
mav.addObject("user", ue);
return mav;
}
}
applicationContext.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/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd">
<!-- 启用注解 -->
<context:component-scan base-package="com.mvc.controller"/>
<!-- 配置视图解析器目标跳转的前后缀设置 -->
-------------------------------写法1--------------------------------------------
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/" p:suffix=".jsp"></bean>
-------------------------------写法2--------------------------------------------
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<property name="suffix" value=".jsp"/>
</bean>
---------------------------------------------------------------------------
//开启SpringMVC框架注解支持,这里开始入门可以不加
<mvc:annotation-driven/>
</beans>
web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>z_SpringMVC_Web</display-name>
<!-- ================================================================================ -->
<!--配置dispatcherservlet控制器 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 作为初始化参数加载器配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<!-- 这里的意思就是:当服务器启动就加载当前的 servlet ;不等到数据请求的时候才创建该servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- 请求中文乱码处理 -->
<filter>
<filter-name>filterEncoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>filterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- ================================================================================ -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
</web-app>
页面请求
<a href="user/t1">跳转页面</a>
-------------------------------------------------------------------------------
<a href="user/t2">重定向跳转</a>
-------------------------------------------------------------------------------
<a href="user/t3?userName='小白'&userSex='男'">手动接受参数</a>
-------------------------------------------------------------------------------
<a href="user/t4?userName='小白'&userSex='男'&userAge=20">自动结接受参数</a>
-------------------------------------------------------------------------------
添加对象属性
<form action="user/t5" method="post">
userId:<input type="text" name="userId"><br>
userName:<input type="text" name="userName"><br>
userPwd:<input type="text" name="userPwd"><br>
userPhone:<input type="text" name="userPhone"><br>
userAge:<input type="text" name="userAge"><br><br>
<input type="submit" value="提交">
</form>
-------------------------------------------------------------------------------
添加对象属性2
<form action="user/t52" method="post">
userId:<input type="text" name="ue.userId"><br>
userName:<input type="text" name="ue.userName"><br>
userPwd:<input type="text" name="ue.userPwd"><br>
userPhone:<input type="text" name="ue.userPhone"><br>
userAge:<input type="text" name="ue.userAge"><br><br>
<input type="submit" value="提交">
</form>
-------------------------------------------------------------------------------
<a href="user/'小白'/'123456'/20/test6">地址重写</a>
-------------------------------------------------------------------------------
<a href="user/t7?name='小白'&pwd='123456'">使用 ModelAndView 对象返回界面传参数</a>
-------------------------------------------------------------------------------
success.jsp
成功跳转....
session: ${sesUe.userName}
request: ${reqUe.userName}
ModelAndView :${user.userName}
这里说哈 注解 “requestMapper ” 属性
requestMapper属性:path、value、method、params、headers
@requestMapper(path="/user") = @requestMapper(value="/user")
@requestMapper("/user")(只有一个属性的时候)= @requestMapper(value="/user")
//method={RequestMethod.post}:表示请求的方法必须是post方式
@requestMapper(value="/user",method={RequestMethod.post})
<a href="user">访问数据</a> //这里a 标签访问默认get请求,而方法要求的是post请求方式,所以,此a标签访问失败
//params={}表示限制指定请求参数的条件,它支持简单的表达式。要求请求参数的key和value必须和配置一摸一样
@requestMapper(value="/user",method={RequestMethod.get},params={"username=tt"})
<a href="user?username=tt">访问数据</a>
//headers={"Accept"}:表示请求头
@requestMapper(value="/user",method={RequestMethod.get},params={"username=tt"},headers={"Accept"})