SpringMVC-响应数据和结果视图

一、返回值分类

1、字符串

@Controller
@RequestMapping("test")
public class test{
    
    @RequestMapping("testString")
    public String testString(Model model){
          User user = new User();
          user.setUserName("李四");
          user.setAge("29");
          user.setDate("2019/12/12");
          model.addAttribute("user",user);
        return "success";
        
    }

}

<form action="test/updata" method="post">
    姓名:<input type="text" name="${user.UserName}"/><br>
    年龄:<input type="text" name="${user.age}"/><br>
    日期:<input type="text" name="${user.date}"/><br>
    <input type="submit" value="提交"/>
</form>

2、void

 

3、ModelAndView

@Controller
@RequestMapping("test")
public class test{

    @RequestMapping("testModelAndView")
    public ModelAndView testModelAndView(){
        ModelAndView mv = new ModelAndView();
        List<Users> users = new ArrayList<>;
        User user1 = new User();
        user1.setUserName("李四");
        user1.setAge("23");
        User user2 = new User();
        user2.setUserName("王五");
        user2.setAge("33");
        users.add(user1);
        users.add(user2);
        mv.addObject("users",users);
        mv.setView("success");
        return mv;
    }
    
}

<c:forEach items="${users}" value="user">
    ${user.UserName}
</c:forEach>

二、转发和重定向

转发后浏览器请求还是原来的,转发是在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为

1、forward

重定向后浏览器的地址变成了两个,对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的 访问请求.使用请求转发,既可以转发到jsp,也可以转发到其他的控制器方

@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("/testForward")
    public String testForward(){
        System.out.println("重定向方法执行了");
        return "forward:";
    }
}

2、Redirect

@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("/testRedirect")
    public String testRedirect(){
        System.out.println("重定向方法执行了");
        return "redirect:";
    }
}

三、ResponseBody响应json数据

<input type="button" value="提交json数据" onclick="testJson()"/>

function testJson(){
    var url="/test/testJson";
    

   $.ajax({
        url:url,
        method:"get",
        dataType:"json",
        data:{
            "id":"12","userName":"hehe"
        },
        success:function(data){
            alert(data);
            alert(data.id);
            alert(data.userName);
        }
       
    })

}

@Controller
@RequestMapping("/test")
public class test{
    @RequestMapping("/testJson")
    public @ResponseBody User testJson(@RequestBody User user){
           user.setId("32");
           user.setuserName("lisi");
            return user;
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值