RequestMapping пути с пустым параметром запроса - PullRequest
0 голосов
/ 06 сентября 2018

Мне нужно иметь одно сопоставление для / jsp / login и / jsp / login? Error

Обратите внимание, я не могу использовать / jsp / login? Error = someval, а затем проверить, имеет ли param это значение или значение по умолчанию. = после того, как параметр не разрешен в этом случае.

Возможно ли это с пружиной?

Чтобы прояснить вышесказанное, у меня уже есть код:

@RequestMapping("/jsp/login")
public String login(@RequestParam(value = "error", required = false) String error, Map<String, Object> model) {
        if(error != null && !error.isEmpty()) {
            model.put("message", "wrong user id or password");
        }
        return "login";
}

Таким образом, оба запроса: / jsp / login и / jsp / login? Error отображаются как error = null, как обязательный = false. И error! = Null, если URL-адрес что-то вроде / jsp / login? Error = yes

Требование: ошибка! = Ноль, даже для / jsp / login? Ошибка без какого-либо значения параметра

Ответы [ 3 ]

0 голосов
/ 06 сентября 2018

Да, это возможно

@RequestMapping (value = "/jsp/login", method = RequestMethod.GET)
public String showLoginWindow(@RequestParam(value = "error", required = false) String errorStr) throws LoginException {...}

Важной частью является required = false, поэтому при вызове /jsp/login errorStr будет иметь значение как ноль.

0 голосов
/ 06 сентября 2018

Мой плохой! изменение if (error! = null &&! error.isEmpty ()) на if (error! = null) работает отлично. Пропустил основное.

0 голосов
/ 06 сентября 2018

Да - Вы можете иметь необязательные параметры запроса.

    @RequestMapping(value = "/jsp/login", method = RequestMethod.GET)
    public @ResponseBody String handleLogin(
            HttpServletRequest req,
            @RequestParam(value="error",required = false) String error) {
        //TODO: write your code here
        return "success";
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...