Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

Spring DataBinding (1) - HTML Form 본문

SpringFramework/References

Spring DataBinding (1) - HTML Form

defacto standard 2018. 2. 10. 13:34

client에서 server로 request할 시에 여러가지 데이터를 담아서 보내는 경우가 많은데,

controller에서는 이 담겨온 정보를 plain text로 일일이 받아서 사용하기 보다는


객체로 DataBinding을 하여 바로 쓰는 것이 코드가 간결하고 사용하기도 편하다.

여러가지 경우에 대해서 DataBinding을 생각해 볼 수 있다.


HTML Form Data to Object


HTML Form Data를 전송했을 때, Controller에서 Object로 바로 받아서 사용할 수 있다.


 - HTML Form

<form>
...
<input class="control" name="name" type="text" />
<input class="control" name="email" type="text" />
<textarea class="control" name="text" rows="10" cols="10">
...
</form>

HTML form에서 값을 입력할 경우에는 <input>태그의 name 속성의 값이 바인딩 하려는 객체에 대한 클래스의 변수명과 같이 "name", "email", "text"와 매치가 되게 작성하여야 한다.



 - Java Class

public class Offer {
...
private String name;
private String email;
private String text;
...
}

즉, Offer 클래스에는 name, email, text라는 이름의 필드가 존재한다.


 - Controller

@RequestMapping("/docreate")
public String doCreate(Model model, Offer offer) {
return "offercreated";
}

Controller는 그냥 받으면 된다.



HTML Form Data to DataType

(using @RequestParam)


HTML Form에서 보낸 Data를, 일일이 DataType을 지정하여 받을 수 있다.


 - HTML Form

<form>
...
<input class="control" name="name" type="text" />
<input class="control" name="email" type="text" />
<textarea class="control" name="text" rows="10" cols="10">
...
</form>



 - Controller

@RequestMapping("/docreate")
public String doCreate(Model model, @RequestParam String name, @RequestParam String email, @RequestParam String text) {
return "offercreated";
}

@RequestParam을 써서 자료형으로 받을 수도 있다. 변수명은 HTML Form의 'name' Attribute의 값과 동일해야 한다.




'SpringFramework > References' 카테고리의 다른 글

Spring DataBinding (3) - AJAX Request via JQuery (JSON)  (2) 2018.05.02
Spring DataBinding (2) - Spring Form Tag  (0) 2018.05.02
Apache Tiles와 장단점  (0) 2017.11.16
IoC / DI / AOP  (0) 2017.11.16
POJO  (0) 2017.11.16
Comments