2017-02-08 47 views
-1

私はsolidな接続を確立したローカルのOracleデータベースを持っています。今、私はちょうどそのデータを処理するためにコントローラを使用してHTML入力フォームからデータをPOSTしたいと思います。フォームからデータベースへのhtml入力値の受け渡し方法(Springboot)

私のフォームは次のようになります。

<form action="/request/save" method="post"> 
    <input type="text" id="dateInput" name="requestDate" value="1" style="display: none;"/> 
    <input type="text" name="description" value="This is a test request." style="display: none;"/> 
    <input type="text" name="status" value="false" style="display: none;"/> 
    <div style="width: 200px;"><input type="submit" value="Submit Request" style="display: block;"></div> 
</form> 

コントローラー:

@RequestMapping(value = "/save", method = RequestMethod.POST) 
    String saveRequest(Principal principal, @ModelAttribute Request request, Model model) { 
     // Set UserId to Request Field USER_ID 
     Users user = usersRepository.findOneByInitialName(principal.getName()); 
     Request requestObj = new Request(user, new Date()); 
     requestObj.setId(user.getId()); 

     // Set Additional Request Fields 
     requestObj.setDescription("Test"); 
     requestObj.setStatus(false); 
     requestObj.setRequestDate(new Date()); 

     // Save Request Object 
     requestRepository.save(requestObj); 
     return "requests"; 
    } 

エンティティ(補完用):

私は、フォームからの私へデータを送信することができますどのように
@Entity 
public class Request { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    @Column(name="request_id") 
    private Long id; 
    private Date requestDate; 
    private String description; 
    private Boolean status; 
    @ManyToOne(fetch=FetchType.LAZY) 
    @JoinColumn(name="user_id", nullable = false) 
    private Users users; 

    public Request() {} 

    public Request(Users user, Date requestDate) { 
     this.setUsers(user); 
     this.setRequestDate(requestDate); 
    } 

    @Override 
    public String toString() { 
     return String.format(
       "Request[id=%d, inital='%s', requestDate='%s']", 
       getId() 
       , getUsers().getInitialName() 
       , getRequestDate()); 
    } 


    public Date getRequestDate() { 
     return requestDate; 
    } 

    public void setRequestDate(Date requestDate) { 
     this.requestDate = requestDate; 
    } 

    public Boolean getStatus() { 
     return status; 
    } 

    public void setStatus(Boolean status) { 
     this.status = status; 
    } 

    public Long getId() { 
     return id; 
    } 

    public void setId(Long id) { 
     this.id = id; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    public Users getUsers() { 
     return users; 
    } 

    public void setUsers(Users users) { 
     this.users = users; 
    } 
} 

データベース?

エラー:

Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'. 

答えて

1

あなたのリクエストヘッダに "X-CSRF-TOKEN" を渡す必要があるので、あなたは、あなたのweb.xmlにCSRFフィルターを構成している場合があります。

+0

これを私のフォームの '' ''に追加しました。私はまだエラーが発生しています。要求ヘッダーにcsrfフィルターを追加すると、コードのように見えますか? – santafebound

関連する問題