JSP页面,后端返回数据到前端页面方法

本文详细介绍了在Java后端开发中,如何将数据从后台传递给JSP页面,包括使用request对象、ModelAndView对象、Model对象以及Map对象等四种常见方式。

Java后台数据如何返回数据给jsp页面

当页面是jsp页面时,大多都是return 具体页面地址,该如何返回数据给前端呢?以下为后端返回数据到jsp页面上的方法。

页面userAdd.jsp。它既是发出请求的页面,也是接收返回结果的页面:

<%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <form action="user/add.do" method="post">
        <input type="submit" value="提交">
    </form>
    ${userId }
  </body>
</html>
1、通过request对象:
@RequestMapping("/add")
public String add(HttpServletRequest request){
    request.setAttribute("userId",12);
    return "userAdd";
}
2、通过ModelAndView对象:
@RequestMapping("/add")
public ModelAndView add(){
    ModelAndView mav = new ModelAndView("userAdd");
    mav.addObject("userId", 12);
    return mav;
}
3、通过Model对象:
@RequestMapping("/add")
public String add(Model model){
    model.addAttribute("userId", 12);
    return "userAdd";
}
4、通过Map对象:
@RequestMapping("/add")
public String add(Map<String,Object> map){
    map.put("userId", 12);
    return "userAdd";
}
JSP后端返回页面时获取数据有多种方法,以下是详细介绍: ### 通过request对象 使用`HttpServletRequest`对象的`setAttribute(String name, Object object)`方法可将数据保存到`request`范围内的变量中,然后在JSP页面获取。示例代码如下: ```java @RequestMapping("/add") public String add(HttpServletRequest request){ request.setAttribute("userId", 12); return "userAdd"; } ``` 在`userAdd.jsp`页面获取数据: ```jsp <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%> <html> <head> <title></title> </head> <body> <form action="user/add.do" method="post"> <input type="submit" value="提交"> </form> ${userId } </body> </html> ``` 这里在后端通过`request.setAttribute`设置了`userId`,在JSP页面通过`${userId}`获取该数据[^2]。 ### 通过ModelAndView对象 `ModelAndView`对象可同时设置视图和数据。示例代码如下: ```java @RequestMapping("/add") public ModelAndView add(){ ModelAndView mav = new ModelAndView("userAdd"); mav.addObject("userId", 12); return mav; } ``` 在这个例子中,创建了`ModelAndView`对象`mav`,将视图名设置为`userAdd`,并添加了`userId`数据,最后返回`mav`。在JSP页面同样可以使用`${userId}`获取数据[^2]。 ### 通过Model对象 使用`Model`对象的`addAttribute`方法添加数据。示例代码如下: ```java @RequestMapping("/add") public String add(Model model){ model.addAttribute("userId", 12); return "userAdd"; } ``` 这里在后端通过`model.addAttribute`添加了`userId`数据,在JSP页面使用`${userId}`获取数据[^2]。 ### 通过Map对象 可以使用`Map`对象来传递数据。示例代码如下: ```java @RequestMapping("/add") public String add(Map<String,Object> map){ map.put("userId", 12); return "userAdd"; } ``` 在后端通过`map.put`方法添加`userId`数据,在JSP页面使用`${userId}`获取数据[^2]。 ### 处理数组或对象数据 如果后端返回的是数组或对象数据,在JSP页面没有使用Thymeleaf时,需要先将后端数据转成JSON字符串进行传递,再通过`eval`函数进行转换。示例代码如下: ```java model.addAttribute("excepetionData", JSONArray.fromObject(excepetionData)); ``` 在前端JSP页面: ```jsp <script type="text/javascript"> // 直接获取可能是字符串地址 var excepetionData = '${excepetionData}'; // 通过eval函数转换 var excepetionData = eval('(' + '${excepetionData}' + ')'); </script> ``` 这样就可以拿到对象或者数组的数据[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值