1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/JbootProjects-jboot

 / Детали:

jboot(4.1.9) при конфигурации использования параметров action mapping не может правильно получать JSON параметры,...

Предстоит сделать
Владелец
Создано  
04.03.2025

переданные从前端通过POST方式。 Перевод: jboot(4.1.9) при конфигурации использования параметров action mapping не может правильно получать JSON параметры, переданные с помощью POST запроса с фронта.

Ожидаемый способ использования:

@Log4j2
@RequestMapping("/jboot")
public class JbootTestController extends JbootController {
    public void index() {
        log.debug("Запущено в методе index....");
        renderText("Привет, мир JFinal.");
    }

    // GET запрос
    public void test(String name, String password) {
        log.debug("Запущено в методе test....");
        renderText("Привет, мир JFinal. " + name + " " + password);
    }

    // POST запрос
    public void test2(String value) {
        log.debug("Запущено в методе test2....");
        renderText("Привет, мир JFinal. " + value);
    }

    // POST запрос
    public void test3(DemoObj demoObj) {
        log.debug("Запущено в методе test3....");
        renderText("Привет, мир JFinal. " + demoObj.toString());
    }
}

Для GET запроса можно получить значения параметров действия. Однако для POST запроса эти значения недоступны с использованием вышеописанного подхода.

Шаги выполнения следующие:

  1. В главном запускающем классе, реализующем JbootAppListener, в методе onConstants():
@Log4j2
public class JbootTest implements JbootAppListener {
    public static void main(String[] args) {
        JbootApplication.createServer(args).start();
    }

    @Override
    public void onConstantConfig(Constants constants) {
        constants.setResolveJsonRequest(true);
    }
}
  1. При попытке получения параметра через действие (метод /test2), получается следующее сообщение об ошибке:

Как видно, проблема заключается в том, что при вызове метода GET jboot сталкивается с проблемой преобразования типов данных.

  1. Проанализировав исходный код jfinal и jboot, в методе handle класса ActionHandler, было замечено, что jfinal имеет проверку и обработку JSON, тогда как jboot такой возможности не предоставляет. Возможно, это является причиной возникновения проблемы?

Jfinal:

Jboot:

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/JbootProjects-jboot.git
git@api.gitlife.ru:oschina-mirror/JbootProjects-jboot.git
oschina-mirror
JbootProjects-jboot
JbootProjects-jboot