为了账号安全,请及时绑定邮箱和手机立即绑定

将许多参数传递给控制器​​的好方法是什么?

将许多参数传递给控制器​​的好方法是什么?

守候你守候我 2023-03-18 16:05:36
我有一个关于 Java(Spring 框架)和 Javascript(AngularJs 框架)的应用程序。表中有对象列表和两个用于过滤此对象的文本字段。过滤发生在服务器端,所以我将这些值从文本字段作为参数传递给@RestController 的方法,然后传递给存储库方法。客户端:        $http({            method: 'GET',            url: '/messages',            params: {sender: $scope.sender, recipient: $scope.recipient}        }).then(            function (res) {                $scope.messages = res.data;            },            function (res) {                console.log("Error: " + res.status + " : " + res.data);            }        );服务器端:    @GetMapping("/messages")    @ResponseBody    public List<Message> getMessagesWithFilters(@RequestParam(required = true) String sender,                                                @RequestParam(required = true) String recipient) {              List<Message> messages = messageRepository.findBySenderNumberAndRecipientNumber(sender, recipient);         return messages;    }当只有两个过滤器时很容易,但是如果有 10 个或 20 个过滤器,我该怎么办?有没有好的方法可以做到这一点,我应该将它们作为地图或类似的东西传递吗?
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以@ModelAttribute像这样使用此注释:


@GetMapping("/messages")

@ResponseBody

public List<Message> getMessagesWithFilters(@ModelAttribute Filter filter) {   

        List<Message> messages = messageRepository.findBySenderNumberAndRecipientNumber(filter.sender, filter.recipient); 

        return messages;

}

和过滤器.java


public class Filter {

    public String sender;

    public String recipient;

}

然后你可以在你的控制器中使用filter.senderandfilter.recipient


查看完整回答
反对 回复 2023-03-18
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号