SpringMvc响应数据及结果视图实现代码

2022-07-30,,,,

响应数据和结果视图

返回值分类

controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。
//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/web-inf/pages/success.jsp
@requestmapping("/testreturnstring")
public string testreturnstring() {
system.out.println("accountcontroller 的 testreturnstring 方法执行了。。。。");
return "success"; }

运行结果:

@requestmapping("/testreturnvoid")
public void testreturnvoid(httpservletrequest request,httpservletresponse response)
throws exception {
}在 controller 方法形参上可以定义 request 和 response,使用 request 或 response 指定响应结果:

1、使用 request 转向页面,如下:

request.getrequestdispatcher("/web-inf/pages/success.jsp").forward(request,
response);

2、也可以通过 response 页面重定向:

response.sendredirect("testretrunstring") 3、也可以通过 response 指定响应结果,例如响应 json 数据:
response.setcharacterencoding("utf-8");
response.setcontenttype("application/json;charset=utf-8");
response.getwriter().write("json 串");

modelandview 是 springmvc 为我们提供的一个对象,该对象也可以用作控制器方法的返回值。

该对象中有两个方法:

实例代码

//返回值为modelandview
  @requestmapping("/test01")
  public modelandview test01(){
    user user = new user();
//    user.setuname("张三");
    user.setage(12);

    modelandview mv=new modelandview();
    mv.addobject("user",user);
    mv.setviewname("ok");
    return mv;

  }


ok.jsp代码:
<%@ page contenttype="text/html;charset=utf-8" language="java" iselignored="false" %>
<html>
<head>
  <title>title</title>
</head>
<body>
  <h1>入门成功</h1>
  ${user.uname}
  ${user.age}
</body>
</html>

forward转发

 //forward转发方式
  @requestmapping("/test02")
  public string test02(){
    system.out.println("forward");
    return "forward:/web-inf/pages/ok.jsp";
  }

需要注意的是,如果用了 formward:则路径必须写成实际视图 url,不能写逻辑视图。它相当于“request.getrequestdispatcher("url").forward(request,response)”。使用请求转发,既可以转发到 jsp,也可以转发到其他的控制器方法。

redirect 重定向

 @requestmapping("/test03")
  public string test03(){
    system.out.println("redirect");
    return "redirect:/index.jsp";
  }

它相当于“response.sendredirect(url)”。需要注意的是,如果是重定向到 jsp 页面,则 jsp 页面不能写在 web-inf 目录中,否则无法找到。

responsebody 响应json 数据

作用:

该注解用于将 controller 的方法返回的对象,通过 httpmessageconverter 接口转换为指定格式的
数据如:json,xml 等,通过 response 响应给客户端

需求:

使用@responsebody 注解实现将 controller 方法返回对象转换为 json 响应给客户端。
前置知识点:

springmvc 默认用 mappingjacksonhttpmessageconverter 对 json 数据进行转换,需要加入jackson 的包。

 @requestmapping("/test04")
  public @responsebody user test04(@requestbody user user){
    system.out.println("运行");
    user.setage(13);
    user.setusername("张三");
    user.setpassword("12346845");
    return user;

  }

jsp中的代码:
  <script src="${pagecontext.request.contextpath}/js/jquery.min.js"></script>

  <script type="text/javascript">
    $(function () {
      $("#open").click(function () {
        $.ajax({
          url:"${pagecontext.request.contextpath}/user/test04",
          contenttype:"application/json;charset=utf-8",
          data:'{"username":"hehe","password":"123456","age":12}',
          type:"post",
          datatype:"json",
          success:function (data) {

            alert(data);
            alert(data.username);
            alert(data.password);
            alert(data.age);

          }
        });
      });
    })

结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

《SpringMvc响应数据及结果视图实现代码.doc》

下载本文的Word格式文档,以方便收藏与打印。