Как я могу справиться с @RequestParam в файле JSP?

все! У меня вопрос об использовании @RequestParam в @RestController. Я хотел бы знать, как получить @RequestParam от клиента. Код сервера (@RestController):

@ResponseBody
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity<List<ProjectBean>> getAllBeans(@RequestParam(name = "head") Integer headId) {
    Integer head = securityService.getLoggedAccountId();
    List<ProjectBean> projects = (List<ProjectBean>) projectService.getByHead(head);
    return new ResponseEntity<List<ProjectBean>>(projects, HttpStatus.OK);
}

И JSP / JavaScript:

function loadProjects() {
    $.ajax({
        url : 'rest/projects',
        method : 'GET',
        headers : {
            'Content-Type' : 'application/json',
        },
        success: function(data){
            $.each(data, function(index, project) {
                addProject(project);
            });
        }
    });
}

эта функция загружает все проекты, но не с точным headId

Юридическое лицо:

@Entity
@Table(name = "projects")

public class Project {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name = "project_name", nullable = false, length = 255)
    private String projectName;

    @Column(name = "head")
    private Integer head; //need to get projects with this value

    @Column(name = "description")
    private String description;

    @Column(name = "photo")
    private String photo;

    @Column(name = "status", nullable = false, length = 200)
    private String status;
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
50
2

Ответы 2

Вы можете указать путь в аннотации @RequestMapping;

@RequestMapping(method = RequestMethod.GET, path = "rest/projects/{head}")

или используя аннотацию @GetMapping:

@GetMapping(path = "rest/projects/{head}")

И используйте @PathVariable("head") вместо @RequestParam(name = "head")

Для части Javascript вы должны указать head в URL-адресе:

function loadProjects(head) {
    $.ajax({
        url : 'rest/projects/' + head,
        method : 'GET',
        headers : {
            'Content-Type' : 'application/json',
        },
        success: function(data){
            $.each(data, function(index, project) {
                addProject(project);
            });
        }
    });
}

На мой взгляд, рекомендуется предложение @NayoR. Но чтобы на самом деле ответить на ваш вопрос, вам нужно использовать строку запроса в вашем js, например:

function loadProjects() {
    $.ajax({
        url : 'rest/projects?head=' + headId,
        method : 'GET',
        headers : {
            'Content-Type' : 'application/json',
        },
        success: function(data){
            $.each(data, function(index, project) {
                addProject(project);
            });
        }
    });
}

Другие вопросы по теме