SpringMVC学习笔记三:Controller的返回值
springMVC的返回值有ModelAndView,String,void,Object类型
项目目录树:
该项目是在前面项目的基础上修改的,这里的pom.xml文件需要加入使用到的包,应为@ResponseBody需要使用的包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.3</version>
</dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.3</version>
</dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.3</version>
</dependency>
ReturnValueController.java控制器
package com.orange.controller; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value="/returnValue")
public class ReturnValueController { @RequestMapping("/returnModelAndView") //返回ModelAndView
public ModelAndView doModelAndView(String name, String password, ModelAndView mav){
mav.addObject("name", name);
mav.addObject("password", password);
mav.setViewName("/showReturn.jsp");
return mav; } @RequestMapping("/returnString") //返回String类型, 可以通过HttpServletRequest 来传递参数
public String doString(String sname, String spassword, HttpServletRequest request){
request.setAttribute("sname", sname);
request.setAttribute("spassword", spassword);
return "/showReturn.jsp"; } @RequestMapping("/returnVoid") //无返回值,通过ServletAPI完成参数传递和跳转
public void doVoid(String vname, String vpassword, HttpServletRequest request, HttpServletResponse response) throws Exception{
request.setAttribute("vname", vname);
request.setAttribute("vpassword", vpassword);
request.getRequestDispatcher("/showReturn.jsp").forward(request, response);
} @RequestMapping("/returnObjectValue") //返回Object对象需要开启消息转换器HttpMessageConverter,<mvc:annotation-driven/>
@ResponseBody
public Object doObjectValue(){
return 12.34; } @RequestMapping("/returnObjectString") //返回String
@ResponseBody
public Object doObjectString(){
return "Hello SpringMVC"; } @RequestMapping("/returnObjectList") //返回List
@ResponseBody
public Object doObjectList(){
List<String> list = new ArrayList<String>();
list.add("String1");
list.add("String2");
list.add("String3");
return list; } @RequestMapping("/returnObjectMap") //返回Map
@ResponseBody
public Object doObjectMap(){
Map<String, String> map = new HashMap<String, String>();
map.put("mk1", "kv1");
map.put("mk2", "kv2");
map.put("mk3", "kv3");
return map; } }
spring-mvc.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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- 开启驱动器注解 -->
<mvc:annotation-driven /> <!-- 静态资源设置,因为需要加入js/jquery-1.7.1.js静态资源 -->
<mvc:resources location="/js/" mapping="/js/**"/> <!-- 扫描注解 -->
<context:component-scan base-package="com.orange.controller" /> </beans>
测试页面returnValue.jsp,用来调取Controller的配置
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!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=GBK">
<base href="<%=basePath %>">
<script type="text/javascript" src="js/jquery-1.7.1.js"></script>
<script type="text/javascript">
$(function(){
//获取value值得ajax
$("#value").on("click", function(){
alert("123");
$.ajax({
type: "get",
url: "returnValue/returnObjectValue",
success: function(data){
alert("data: " + data);
}
});
});
//获取String值得ajax
$("#string").on("click", function(){
alert("123");
$.ajax({
type: "get",
url: "returnValue/returnObjectString",
success: function(data){
alert("data: " + data);
}
});
});
//获取List值得ajax
$("#list").on("click", function(){
alert("123");
$.ajax({
type: "get",
url: "returnValue/returnObjectList",
success: function(data){
for(var i=0; i<data.length; i++)
alert("data: " + data[i]);
}
});
});
//获取Map值得ajax
$("#map").on("click", function(){
alert("123");
$.ajax({
type: "get",
url: "returnValue/returnObjectMap",
success: function(data){
for(var key in data){
alert("key: " + key + " value: " + data[key]);
}
}
});
});
}); </script>
<title>ReturnValue</title>
</head>
<body> 返回ModelAndView
<form action="returnValue/returnModelAndView">
name: <input type="text" name="name"><br/>
password:<input type="text" name="name"><br/>
<input type="submit" value="submit">
</form>
<hr>
返回String类型
<form action="returnValue/returnString">
name: <input type="text" name="sname"><br/>
password:<input type="text" name="spassword"><br/>
<input type="submit" value="submit">
</form>
<hr>
无返回值
<form action="returnValue/returnVoid">
name: <input type="text" name="vname"><br/>
password:<input type="text" name="vname"><br/>
<input type="submit" value="submit">
</form>
<hr>
返回Object对象,类型为数值型
<input id="value" type="button" value="AjaxgetValue">
<hr>
返回Object对象,类型为String
<input id="string" type="button" value="AjaxgetString">
<hr>
返回Object对象,类型为List
<input id="list" type="button" value="AjaxgetList">
<hr>
返回Object对象,类型为Map
<input id="map" type="button" value="AjaxgetMap"> </body>
</html>
跳转后的页面showReturn.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!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=GBK">
<base href="<%=basePath %>">
<title>ShowReturn</title>
</head>
<body>
返回ModelAndView
<div>
<h3><c:out value="${name }" /></h3>
<h3><c:out value="${password }" /></h3>
</div>
<hr>
返回String类型
<div>
<h3><c:out value="${sname }" /></h3>
<h3><c:out value="${spassword }" /></h3>
</div>
<hr>
无返回值
<div>
<h3><c:out value="${vname }" /></h3>
<h3><c:out value="${vpassword }" /></h3>
</div>
</body>
</html>
测试结果
SpringMVC学习笔记三:Controller的返回值的更多相关文章
- SpringMVC 学习笔记(请求方法的返回值和参数)
在用注解对配置 处理器时,一般是一个方法处理一个请求,不同方法的返回类型有着不同的意义. 返回值为 ModelAndView 类型 ModelAndView 是Model 和 View 的一个集合类型 ...
- SpringMVC的@RequestMapping和Controller方法返回值
本节内容: @RequestMapping Controller方法返回值 一.@RequestMapping 通过@RequestMapping注解可以定义不同的处理器映射规则. 1. URL路径映 ...
- SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器
目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...
- SpringMVC 学习笔记(三)数据的校验
34. 尚硅谷_佟刚_SpringMVC_数据绑定流程分析.avi 例如:在jsp中输入一个String字符串类型,需要转换成Date类型的流程如下 convertservice对传入的数据进行转换 ...
- SpringMVC学习笔记三:拦截器
一:拦截器工作原理 类比Struts2的拦截器,通过拦截器可以实现在调用controller的方法前.后进行一些操作. 二:拦截器实现 1:实现拦截器类 实现HandlerInterceptor 接口 ...
- SpringMVC学习笔记(三)
一.SpringMVC使用注解完成 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setti ...
- SpringMVC学习总结(三)——Controller接口详解(2)
4.5.ServletForwardingController 将接收到的请求转发到一个命名的servlet,具体示例如下: package cn.javass.chapter4.web.servle ...
- springMVC学习笔记三
十三.springMVC和spring集成 配置文件,spring的配置路径applicationContext.xml 在默认的web-inf下面 strut的配置文件默认在src下面 用了什么框架 ...
- python 学习笔记(三)根据字典中值的大小对字典中的项排序
字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...
随机推荐
- Vue2.0权限树组件
项目使用的饿了么的Element-Ui,权限树使用其树形控件: <el-tree :data="data" ></el-tree> 刚开始没有特殊需求,三级 ...
- 业内首发 | 区块链数据服务 - BDS
区块链数据服务(Blockchain Data Service,BDS)是京东云区块链产品部发推出的,其将区块链的链式.非结构化数据通过技术手段进行结构化存储,实时同步到高性能数据仓库中. 用户可以通 ...
- F5 BIG-IPLTM单臂组网的三种连接模式
- 常见的nosql数据库有哪些?以及他们的特点与区别?
一.常见的nosql 二.Redis,Memcache,MongoDb的特点 (1).Redis 优点: 1.支持多种数据结构,如 string(字符串). list(双向链表).dict(hash表 ...
- python-day7爬虫基础之Ajax数据爬取
前几天一直在忙老师的项目,就没有继续学python,也没有写什么收获,今天晚上有空看看书,边看边理解着写吧: 首先说一下,我对Ajax的理解,就是有时候我们在浏览某个网页的时候,只要我们鼠标一直往下滑 ...
- pix2pix-tf官方文档
# 对抗网络的基本思想 # 假设有一种概率分布M,它相对于我们是一个黑盒子.为了了解这个黑盒子中的东西是什么,我们构建了两个东西G和D, # G是另一种我们完全知道的概率分布,D用来区分一个事件是由黑 ...
- SMO算法--SVM(3)
SMO算法--SVM(3) 利用SMO算法解决这个问题: SMO算法的基本思路: SMO算法是一种启发式的算法(别管启发式这个术语, 感兴趣可了解), 如果所有变量的解都满足最优化的KKT条件, 那么 ...
- LFW Face Database下载
http://vis-www.cs.umass.edu/lfw/ Download the database: All images as gzipped tar file (173MB, md5su ...
- 统计学中比较重要的分布及python中使用方法
比较重要的四种分布:正态分布.卡方分布.F分布.t分布 卡方分布概率密度曲线 t分布概率密度曲线 F分布概率密度曲线 参考资料: 统计学中四个概率分布 重要抽样分布
- java centos7 gcc编码 解决socket通信 汉字乱码
1.把 Java eclipes 设置编码成utf-8 windows->preference->workspace 2.centos7 gcc 默认为utf-8