- Spring MVC多动作控制器
- Spring MVC多动作控制器样例
- Spring MVC属性方法名称解析器
- Spring MVC属性方法名称解析器样例
- Spring MVC参数方法名称解析器
- Spring MVC参数方法名称解析器样例
- Spring MVC可参数化的视图控制器
- Spring MVC可参数化的视图控制器样例
- MultiActionController类用于在单个控制器中分别映射多个URL到对应的方法。
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("home");
model.addObject("message", "Home");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Add");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Remove");
return model;
}
}
URL映射配置文件
- 对于/home.html请求,DispatcherServlet将请求转发到UserController类的 home()方法。
- 对于user/add.html,DispatcherServlet将请求转发到UserController类的 add()方法。
- 对于user/remove.html,DispatcherServlet将请求转发到UserController类的 remove()方法。
- 创建一个名称为 MultiActionController的动态WEB项目
- 在 com.yiibai.springmvc包下创建一个Java类UserController。
- 在jsp子文件夹下创建两个视图文件:home.jsp 和 user.jsp
UserController.java
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("home");
model.addObject("message", "Home");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Add");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Remove");
return model;
}
}
MultiActionController-servlet.xml
home.jsp
<%@ page contentType="text/html; charset=UTF-8" %>Home add()方法
remove()方法
user.jsp
<%@ page contentType="text/html; charset=UTF-8" %>Spring MVC属性方法名称解析器User.jsp Page ${message}
- MultiActionController类可在单个控制器中分别映射多个URL到对应的方法
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "主页面(Home方法)");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "添加(Add方法)");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "删除(Remove方法)");
return model;
}
}
URL映射配置文件
home add update
- 对于/user/home.html请求,DispatcherServlet将请求转发到UserController类的 home()方法
- 对于user/add.html,DispatcherServlet将请求转发到UserController类的add()方法。
- 对于user/remove.html,DispatcherServlet将请求转发到UserController类的 remove()方法
- 创建一个名称为 PropertiesMethodNameResolver 的动态WEB项目。
- 在 com.yiibai.springmvc 包下创建一个Java类UserController。
- 在jsp子文件夹下创建一个视图文件:user.jsp。
UserController.java
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "主页面(Home方法)");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "添加(Add方法)");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "删除(Remove方法)");
return model;
}
}
PropertiesMethodNameResolver-servlet.xml
home add remove
user.jsp
<%@ page contentType="text/html; charset=UTF-8" %>Spring MVC参数方法名称解析器User.jsp Page ${message}
- MultiActionController类可在单个控制器中分别映射多个URL到对应的方法
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Home");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Add");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Remove");
return model;
}
}
URL映射配置文件
- 对于/user/*.html?action=home请求,DispatcherServlet将请求转发到UserController类的 home()方法。
- 对于/user/*.html?action=add,DispatcherServlet将请求转发到UserController类的 add()方法。
- 对于/user/*.html?action=remove,DispatcherServlet将请求转发到UserController类的 remove()方法
- 创建一个名称为 ParameterMethodNameResolver 的动态WEB项目
- 在 com.yiibai.springmvc 包下创建一个Java类UserController
- 在jsp子文件夹下创建一个视图文件:user.jsp
UserController.java
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "主页面(Home)");
return model;
}
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "添加(Add方法)");
return model;
}
public ModelAndView remove(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "删除(Remove方法)");
return model;
}
}
ParameterMethodNameResolver-servlet.xml
user.jsp
<%@ page contentType="text/html; charset=UTF-8" %>Spring MVC可参数化的视图控制器User.jsp Page ${message}
- 可参数化视图允许将请求映射到网页。
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Home");
return model;
}
}
URL映射配置文件
index.html=userController
- 对于/index.html请求,DispatcherServlet会将请求转发到UserController控制器,并将viewName设置为index.jsp。
- 创建一个名称为 ParameterizableViewController 的动态WEB项目
- 在 com.yiibai.springmvc 包下创建一个Java类UserController
- 在jsp子文件夹下创建一个视图文件:index.jsp
UserController.java
package com.yiibai.springmvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class UserController extends MultiActionController{
public ModelAndView home(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("user");
model.addObject("message", "Home");
return model;
}
}
ParameterizableViewController-servlet.xml
index.html=userController
index.jsp
<%@ page contentType="text/html; charset=UTF-8" %>index.jsp Page This is index.jsp page.



