Решение проблемы в Redirect или RedirectModel в SpringMVC - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я построил контроллер для своей индексной страницы, которая также является страницей входа в систему.

С помощью контроллера я сопоставляю jsp, если учетные данные пользователя для входа совпадают, и если это не такЯ хочу перенаправить на страницу индекса с сообщением «Извините, имя пользователя, ошибка пароля».

Вот код:

Контроллер

if(uname.equals(inf.getUsername())&&pwd.equals(inf.getPassword())&&dept.equals(inf.getDept()))
        {
            req.getSession().setAttribute("uname",inf.getName());
            return new ModelAndView("employeeLoginResult", "message", message1); 

        }
        else if(uname.equals(inf2.getUsername())&&pwd.equals(inf2.getPassword())&&dept.equals(inf2.getDept()))
        {
            req.getSession().setAttribute("uname",inf2.getName());
            return new ModelAndView("adminLoginResult", "message", message2); 
        }
        else
        {

            return new ModelAndView("redirect:/index.jsp","message","Sorry");
        }

Страница индекса

<b><span class="heading">LOGIN USER</span></b>
    <div class="container">
        <form action="login.html" method="Post">
            <div class="form_style">
            <input type="text" name="username" placeholder="Enter Username"/>
            <input type="password" name="pwd" placeholder="Enter password"/>
            <select name="dept">
                <option>IT</option>
                <option>Admin</option>
                <option>HR</option>
                <option>Marketing</option>
            </select>
            <input type="Submit" value="submit">
            <span class='disp'>${message}</span>
            </div>
        </form>
    </div>

Перенаправление работает, но сообщение добавляется в URL следующим образом: enter image description here

Я просто хочу напечатать «Извините, ошибка пароля имени пользователя» в файле индекса с $ {message}

Мой вопрос: возможно ли использовать ModelAndView с RedirectView или нет другого решения для отправки перенаправления на мою индексную страницу с помощью ModelAndView?

Любые предложения или мнения приветствуются,Спасибо за то же самое.

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Можете ли вы добавить класс как MyConfig

@EnableWebMvc
@Configuration
public class MyConfig {
   @Autowired
   private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

   @PostConstruct
   public void init() {
     requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);
}
}
0 голосов
/ 27 августа 2018

" Перенаправление работает, но сообщение добавляется в URL " Это ожидаемое поведение обычных атрибутов перенаправления.

Вы можете использовать флэш-атрибуты для перенаправления, не раскрывая URLв браузере.

Например, см. код ниже:

@RequestMapping(value = "/accounts", method = RequestMethod.POST)
 public String handle(Account account, BindingResult result, RedirectAttributes redirectAttrs) {
   if (result.hasErrors()) {
     return "accounts/new";
   }
   // Save account ...
   redirectAttrs.addAttribute("id", account.getId()).addFlashAttribute("message", "Account created!");
   return "redirect:/accounts/{id}";
 }

См. это: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/support/RedirectAttributes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...