SSM-SpringMVC-21:SpringMVC中处理器方法之返回值Object篇
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------
今天要记录的是处理方法,返回值为Object的那种,我给它分了一下类:
1.返回值为Object数值(例如1),2.返回值为Object的String类型(例如"我是不是中文呢"),3.返回值为Object的对象类型(例如自定义UserInfo类型对象),4.返回值为Object的集合类型(例如UserInfo的List集合)
需要一个核心:<mvc:annotation-driven></mvc:annotation-driven>配置文件中的注解驱动这个节点
和jar包,jackson的
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.1</version> </dependency>
so:开始案例,(在一案例中使用到的代码,就不在二,三,四案例里重复展示,以此类推,只会在里面简单提一下)
一,返回值为Object数值
1.首先准备一个处理器,里面加入案例一的处理方法
package cn.dawn.day12return; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; /** * Created by Dawn on 2018/3/28. */ @Controller public class ReturnObjectController { /*返回值object数值型*/ @RequestMapping("/returnobjint") @ResponseBody public Object returnobjint(){ return 1; } }
2.需要一个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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--包扫描器--> <context:component-scan base-package="cn.dawn.day12return"></context:component-scan> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--注解驱动--> <mvc:annotation-driven></mvc:annotation-driven> </beans>
3.web.xml中将中央调度器调度到上面的那个xml,就不给源码了
4.去通过网页url访问,就ok了
二,返回值为Object的String类型
1.处理方法:
/*返回值object的String型*/ @RequestMapping(value = "/returnobjstr",produces = "text/html;charset=UTF-8") @ResponseBody public Object returnobjstr(){ return "我是不是中文呢?"; }
此出指定了返回页面的编码,utf-8,如果不返回会乱码
2.自己的配置xml,web.xml用上面的那个,因为处理方法,就在上面的一个处理器类中
3.通过url访问
三,返回值为Object的对象类型
1.定义一个 UserInfo实体类;
package cn.dawn.day12return; /** * Created by Dawn on 2018/3/26. */ public class UserInfo { private String username; private String password; public UserInfo() { } public UserInfo(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2.定义处理器方法
/*返回值object对象User型*/ @RequestMapping(value = "/returnobjUser") @ResponseBody public Object returnobjUser(){ UserInfo u1=new UserInfo("孟六","123"); return u1; }
3.自定配置xml文件,web.xml和上面一样
4.通过网页url访问
四,返回值为Object的集合类型
1.UserInfo用上面那个就好:
2.定义处理方法:
/*返回值object对象User的集合型*/ @RequestMapping(value = "/returnobjUserList") @ResponseBody public Object returnobjUserList(){ List<UserInfo> lists=new ArrayList<UserInfo>(); UserInfo u1=new UserInfo("孟六","123"); UserInfo u2=new UserInfo("孟七","123"); lists.add(u1); lists.add(u2); return lists; }
3.自定配置xml文件,web.xml和上面一样
4.定义一个jsp页面,我在里面写了ajax,并对返回的那个List<UserInfo>对象做了解析
<%@ page language="java" pageEncoding="utf-8" isELIgnored="false" %> <html> <head> <title>Ajax</title> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.min.js"></script> <script type="text/javascript"> $(function () { $("input").on("click",function () { $.ajax({ url:"${pageContext.request.contextPath}/returnobjUserList", success:function (date) { alert(typeof date); $.each(date,function (i, item) { alert(item.username); }) } }); }); }); </script> </head> <body> <%--<img src="image/1.jpg">--%> <input type="button" value="我在一个没有窗户的小黑屋,住着六个人,一个人通宵写代码,慰藉我的孤独内心"/> </body> </html>
5.启动tomcat,访问jsp,点击使用