2017-07-06 16 views
0

LoginForm:usuario、senha、msgLoginクラス内に3つのフィールドを持つフォームを作成しようとしています。 入力ボックスからフィールドusuárioとsenhaを受け取り、同じフィールドとフィールドMsgLoginを持つ同じページにリダイレクトしようとします。しかし、私はmsgLoginフィールドを更新することができませんでしたし、なぜ私は理解していません。 これらがコードしている:Spring Boot ModelAndView - モデルに値を更新できません

HTML:

<form id="frmLogin" class="form col-md-12" action="#" th:action="@{/login}" th:object="${loginForm}" method="post"> 
     <div class="form-group"> 
      <label for="usuario" class="col-md-1">Usuário: </label> 
      <input type="text" id="usuario" placeholder="Email" th:field="*{usuario}"/> 
     </div> 

     <div class="form-group"> 
      <label for="senha" class="col-md-1">Senha: </label> 
      <input type="password" id="senha" placeholder="senha" th:field="*{senha}"/> 
     </div> 

     <div class="row"> 
      <button id="entrar">Entrar</button> 
     </div> 

    <div class="row"> 
     <div id="msgLogin"></div> 
     <p th:text="${loginForm.msgLogin}" /> 
    </div> 
</form> 

コントローラ:ロンボクを用い

@RequestMapping("/") 
public String init(@ModelAttribute LoginForm loginForm) { 
    Logger.getAnonymousLogger().info("Tela Inicial."); 
    return "home"; 
} 

@PostMapping("/login") 
public ModelAndView entrar(LoginForm loginForm) throws IOException { 
    Logger.getAnonymousLogger().info("Entrando no Internet Banking."); 

    service.login(usuario, senha); 

    ModelMap model = new ModelMap(); 
    loginForm.setMsgLogin("I want to update that value!"); 
    model.addAttribute("loginForm", loginForm); 
    return new ModelAndView("redirect:/", model); 
} 

クラス:

@Getter 
@Setter 
public class LoginForm { 

    private String usuario; 

    private String senha; 

    private String msgLogin; 

} 
+0

あなたは 'usuario'と' senha'と一緒に同じ形式で 'loginForm.msgLogin'の値を追加しますか?または他の? – Zico

+0

実際に私は両方のことが欲しい。私はif条件を使用したいと思います。あるケースでは、同じフォームにmsgLoginフィールドを送信したいのですが、他のケースではusuárioとsenhaを別のフォームに送信したいと考えています。 – user3450923

答えて

0

Aがバックに302 HTTPステータスを送信リダイレクトブラウザは新しいURLを使用して再送信するため、同じ2つのフィールドを新しいURLに再送信します。 302レスポンスにはペイロードデータの期待はありません。お使いのコントローラで

0

にごentrar方法の最後の行を変更:return new ModelAndView("/login", model);

関連する問題