rookie g 2023-05-31 20:12 采纳率: 0%
浏览 27

json数据绑定返回选定值的问题


<%--
  Created by IntelliJ IDEA.
  User: goudiyuan
  Date: 2023/5/31
  Time: 15:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
    <title>选择学生</title>
    <script type="text/javascript"
            src="${pageContext.request.contextPath }/js/jquery-3.6.0.js"></script>
</head>
<body>
您好:${ USER_SESSION.name }
<a href="${ pageContext.request.contextPath }/logout">退出</a>
<form id="students" action="${pageContext.request.contextPath }/getStudents" method="post">

    <table width="220px" border="1">
        <tr>
            <td>选择</td>
            <td>id</td>
            <td>姓名</td>
            <td>班级</td>
        </tr>

        <tr>
            <td>
                <input name="students" value="1" type="checkbox">
            </td>
            <td>
                <input name="id" value="1" id="id" type="text">
            </td>
            <td>
                <input name="name" value="张三" id="name" type="text">
            </td>
            <td>
                <input name="cid" value="1" id="cid" type="text">
            </td>

        </tr>

        <tr>
            <td>
                <input name="students" value="2" type="checkbox">
            </td>
            <td>
                <input name="id" value="2" id="id2" type="text">
            </td>
            <td>
                <input name="name" value="李四" id="name2" type="text">
            </td>
            <td>
                <input name="cid" value="2" id="cid2" type="text">
            </td>
        </tr>

        <tr>
            <td>
                <input name="students" value="3" type="checkbox">
            </td>
            <td>
                <input name="id" value="3" id="id3" type="text">
            </td>
            <td>
                <input name="name" value="王五" id="name3" type="text">
            </td>
            <td>
                <input name="cid" value="1" id="cid3" type="text">
            </td>
        </tr>

        <tr>
            <td>
                <input name="students" value="4" type="checkbox">
            </td>
            <td>
                <input name="id" value="4" id="id4" type="text">
            </td>
            <td>
                <input name="name" value="赵六" id="name4" type="text">
            </td>
            <td>
                <input name="cid" value="2" id="cid4" type="text">
            </td>
        </tr>

    </table>
    <input type="submit" value="提交学生" onclick="submitStudents()"/>

</form>

<script type="text/javascript">

    function submitStudents() {
        var stu1 = {id: $("#id").val(), name: $("#name").val(), cid:$("#cid").val()}
        var stu2 = {id: $("#id2").val(), name: $("#name2").val(), cid:$("#cid2").val()}
        var stu3 = {id: $("#id3").val(), name: $("#name3").val(), cid:$("#cid3").val()}
        var stu4 = {id: $("#id4").val(), name: $("#name4").val(), cid:$("#cid4").val()}
        $.ajax({
            url: "${pageContext.request.contextPath }/getStudentList",
            type: "post",
            data: JSON.stringify([stu1,stu2,stu3,stu4]),
            contentType: "application/json;charset=UTF-8",
            dataType: "json",
            success: function (response) {
                alert(response);
            }
        });
    }
</script>


</body>
</html>



如上面代码是我在java ee中写的想要通过json数据绑定返回我选中的值,如图:

img

但是由于这段代码:

data: JSON.stringify([stu1,stu2,stu3,stu4])

他就自动每次都返回了所有的值

img

如何做到只返回我想要的值呢?需要我把选中的值再拿来重新做一个表格。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-31 22:14
    关注
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7784213
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Json中返回时间为时间戳的问题 通过制作工具类解决
    • 除此之外, 这篇博客: Java前后端分离定义统一结果返回类中的 1.一般有以下几种json返回形式: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 列表:

      {
        "code": 200,
        "message": "成功",
        "data": [
          {
            "id": 2,
            "roleName": "系统管理员"
          }
        ],
        "ok": true
      }

      分页:

      {
        "code": 200,
        "message": "成功",
        "data": {
          "records": [
            {
              "id": 2,
              "roleName": "系统管理员"
            },
            {
              "id": 3,
              "name": "普通管理员"
            }
          ],
          "total": 10,
          "size": 3,
          "current": 1,
          "orders": [],
          "hitCount": false,
          "searchCount": true,
          "pages": 2
        },
        "ok": true
      }

      无数据返回:

      {
        "code": 200,
        "message": "成功",
        "data": null,
        "ok": true
      }

      失败:

      {
        "code": 201,
        "message": "失败",
        "data": null,
        "ok": false
      }
    • 您还可以看一下 刘高联老师的亲自动手写一个深度学习框架课程中的 代码实践:利用json定义网络结构小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      回答:

      要实现只返回想要的值,需要手动构建一个POJO类,作为数据传输的中介类,实现JSON数据和Java对象的转换。在该类中只包含想要返回的字段,忽略其他字段即可。

      以下是一个示例代码:

      首先新建一个POJO类,例如名称为UserInfo,只包含需要返回的字段:

      public class UserInfo {
          private String name;
          private int age;
          // ... getter/setter method
      }
      

      然后修改原代码中数据绑定的部分,使用该POJO类作为数据传输的中介类:

      // 假设原先从数据库查询到的数据已经存储在一个User对象中
      User user = userDao.queryById(userId);
      // 新建中介类UserInfo
      UserInfo userInfo = new UserInfo();
      // 设置需要的字段值
      userInfo.setName(user.getName());
      userInfo.setAge(user.getAge());
      // 使用JSON库将UserInfo对象转换为JSON格式返回给前端
      String json = JSON.toJSONString(userInfo);
      return json;
      

      以上代码中使用了阿里巴巴的fastjson库进行JSON的转换,需要在项目中引入该库的依赖。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月31日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改