Слияние кода завершено, страница обновится автоматически
переданные从前端通过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 запроса эти значения недоступны с использованием вышеописанного подхода.
Шаги выполнения следующие:
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);
}
}
/test2
), получается следующее сообщение об ошибке:Как видно, проблема заключается в том, что при вызове метода GET jboot сталкивается с проблемой преобразования типов данных.
handle
класса ActionHandler
, было замечено, что jfinal имеет проверку и обработку JSON, тогда как jboot такой возможности не предоставляет. Возможно, это является причиной возникновения проблемы?Jfinal:
Jboot: