2016-07-01 8 views
1

私の目標は、ログインとパスワードを処理してユーザーを認証することです。私はthis exampleを再現しようとしましたが、問題に直面しました。春MCV:データ入力を処理できません

私はエンティティユーザークラスを持っている:

@DynamicUpdate 
public class EntityUser 
{ 
    String login; 
    String password; 

    public EntityUser() {} 

    public EntityUser 
    (
      String login, 
      String password 
     ) 
    { 
     this.login = login; 
     this.password = password; 
    } 

    public String getLogin() { 
     return login; 
    } 

    public void setLogin(String login) { 
     this.login = login; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 
} 

これは私の.jspというファイル断片である:

<form action="#" th:action="@{/loginCheck}" th:object="${user}" method="post"> 
      <table border="1" width="30%" cellpadding="3"> 
       <thead> 
        <tr> 
         <th colspan="2">Login Here</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td>User Name</td> 
         <td><input type="text" th:field="*{login}"/></td> 
        </tr> 
        <tr> 
         <td>Password</td> 
         <td><input type="password" th:field="*{password}"/></td> 
        </tr> 
        <tr> 
         <td><input type="submit" value="Login" /></td> 
         <td><input type="reset" value="Reset" /></td> 
        </tr> 
       </tbody> 
      </table> 
     </form> 

そして、これが私のController.javaクラスの断片であります:

@RequestMapping(value = "/loginCheck", method = RequestMethod.GET) 
    public String userForm(Model model) 
    { 
     EntityUser user = new EntityUser(); 
     user.setLogin("login"); 
     user.setPassword("password"); 
     model.addAttribute("user", user); 

     System.out.println(user.getLogin()); 
     System.out.println(user.getPassword()); 

     return "/loginCheck"; 
    } 

    @RequestMapping(value = "/loginCheck", method = RequestMethod.POST) 
    public String processUser(@ModelAttribute(value="user") EntityUser user) 
    { 

     System.out.println(user.getLogin()); 
     System.out.println(user.getPassword()); 

     loginInfo = "Jakarta"; 
     return "redirect:/controllers"; 
    } 

値を入力して[送信]ボタンを押すと、GETまたはPOSTメソッドが呼び出されず(コンソールには何も印刷されていません)、ページは/#

に移動しています。 form action="/HelloSpringMVC/loginCheck"form action="#" 、 POSTメソッドが呼び出された置き換えるが、印刷された両方の文字列が「ヌル」です

だから、そこに間違って何ですか?誰も知っている?

EDITED:ここ は私pom.xmlweb.xmlファイルです。

+0

thymeleafが入力値をモデルのユーザーオブジェクトに渡すために使用されているように見えません。ビューの種類を組み合わせて使用​​しようとしています。 JSPとThymeleaf。あなたはおそらくどちらか一方に固執したいと思うでしょう。私はthymeleafに固執することを提案し、そのように解決策を働かせます。あなたはpom.xmlとMVCの設定クラスを含めることができますか? –

+0

Pom.xmlおよびweb.amlが追加されました –

答えて

0

あなたのpom.xmlにはspring-boot-starter-thymeleafの依存関係がないため、hym/jspテンプレートでthymeleafタグが処理されていません。あなたのpom.xmlにthymeleafスターター依存性を追加し、再構築します。

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 

Thymeleafは自動的にはsrc /メイン/リソース/テンプレートで.html拡張子でテンプレートを検索します。 src/main/resources/application.propertiesを編集/作成し、http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.htmlで定義されているspring.thymeleaf。*アプリケーションのプロパティを追加し、必要に応じて調整することで、デフォルトをカスタマイズすることができます。

関連する問題