<form:select>
- select 태그를 생성
- path : 설정한 문자열은 id와 name 속성으로 지정되며,
- model의 값을 추출해 그 값과 동일한 value 속성의 option태그를 선택한다.
<form:form action='result' modelAttribute="dataBean">
<form:select path="a1">
<form:option value="data1">항목1</form:option>
<form:option value="data2">항목2</form:option>
<form:option value="data3">항목3</form:option>
</form:select>
</form:form>
<form:option>, <form:options>
- <form:option> : select 태그의 option 태그 하나를 생성
- <form:options> : select 태그의 option들을 생성
- items : option 태그들을 생성할 때 필요한 데이터가 담긴 list나 배열
예제
1)TestController에서 data_list1이라는 배열 만들어주고, model에 담아주기
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean, Model model) {
String [] data_list1 = {"data1", "data2", "data3"};
model.addAttribute("data_list1", data_list1);
return "test1";
}
}
+또는 배열이 아니라 ArrayList에 담아줘도 된다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean, Model model) {
ArrayList<String> data_list1 = new ArrayList<String>();
data_list2.add("data1");
data_list2.add("data2");
data_list2.add("data3");
model.addAttribute("data_list1", data_list1);
return "test1";
}
}
2)requestScope를 통해 선택지를 가져오기
<form:form action='result' modelAttribute="dataBean">
<form:select path="a2">
<form:options items="${requestScope.data_list1 }"/>
</form:select>
</form:form>
value속성에 있는 값과, 선택지에 나타날 문자를 다르게 나타내고 싶을 땐?
1) Bean 생성
public class KeyValueBean {
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
2)TestController에서 key와 value를 세팅
-key 에는 실제 옵션에 나타날 선택지(문자열)를 적고,
-value 에는 value 속성에 들어갈 값을 세팅 후 model에 담아준다.
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean, Model model) {
bean.setA1("data2");
bean.setA2("data2");
bean.setA3("data2");
bean.setA4("data2");
String [] data_list1 = {"data1", "data2", "data3"};
model.addAttribute("data_list1", data_list1);
ArrayList<String> data_list2 = new ArrayList<String>();
data_list2.add("data1");
data_list2.add("data2");
data_list2.add("data3");
model.addAttribute("data_list2", data_list2);
KeyValueBean key_bean1 = new KeyValueBean();
KeyValueBean key_bean2 = new KeyValueBean();
KeyValueBean key_bean3 = new KeyValueBean();
key_bean1.setKey("항목1");
key_bean1.setValue("data1");
key_bean2.setKey("항목2");
key_bean2.setValue("data2");
key_bean3.setKey("항목3");
key_bean3.setValue("data3");
ArrayList<KeyValueBean> data_list3 = new ArrayList<KeyValueBean>();
data_list3.add(key_bean1);
data_list3.add(key_bean2);
data_list3.add(key_bean3);
model.addAttribute("data_list3", data_list3);
return "test1";
}
}
3)test1.jsp 세팅
<form:form action='result' modelAttribute="dataBean">
<form:select path="a4">
<form:options items="${requestScope.data_list3 }" itemLabel="key" itemValue="value"/>
</form:select>
</form:form>
-itemLabel : getKey 매소드를 호출해서 반환하는 문자열을 선택지에 보여준다.
-itemValue : getValue 매소드를 호출해서 해당 문자열의 값을 value에 세팅한다.
<form:checkbox>, <form:checkboxs>
- <form:checkbox> : 체크박스 하나를 생성
- <form:checkboxs> : 체크박스들을 생성
- items : 체크박스를 생성할 때 필요한 데이터가 담긴 list나 배열
예제
1)DataBean생성하기 - 배열 생성
public class DataBean {
private String [] a5;
private String [] a6;
private String [] a7;
private String [] a8;
public String[] getA5() {
return a5;
}
public void setA5(String[] a5) {
this.a5 = a5;
}
public String[] getA6() {
return a6;
}
public void setA6(String[] a6) {
this.a6 = a6;
}
public String[] getA7() {
return a7;
}
public void setA7(String[] a7) {
this.a7 = a7;
}
public String[] getA8() {
return a8;
}
public void setA8(String[] a8) {
this.a8 = a8;
}
}
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean, Model model) {
String [] check_list = {"data1", "data3"};
bean.setA5(check_list);
bean.setA6(check_list);
bean.setA7(check_list);
bean.setA8(check_list);
return "test1";
}
}
2) test1.jsp 세팅
<form:form action='result' modelAttribute="dataBean">
<form:checkbox path="a5" value="data1"/>항목1
<form:checkbox path="a5" value="data2"/>항목2
<form:checkbox path="a5" value="data3"/>항목3
</form:form>
-a5배열에 있는 값을 가지고 와서 value 속성의 값이 있는지 확인해서 체크한다.
-실행 결과를 보면, "data1", "data2"의 value가 들어있는 항목1, 항목3은 체크된다.
<form:form action='result' modelAttribute="dataBean">
<form:checkboxes items="${requestScope.data_list1 }" path="a6"/> ---------------------- 배열 사용해보기
<hr/>
<form:checkboxes items="${requestScope.data_list2 }" path="a7"/> ---------------------- ArrayList사용해보기
<hr/>
<form:checkboxes items="${requestScope.data_list3 }" path="a8" itemLabel="key" itemValue="value"/>--------------- KeyValue 사용해보기
</form:form>
<form:radiobutton>, <form:radiobuttons>
- <form:radiobutton> : 라디오버튼 하나를 생성
- <form:radiobuttons> : 라디오버튼들을 생성
- items : 라디오버튼를 생성할 때 필요한 데이터가 담긴 list나 배열
1)DataBean생성하기 - 배열 생성
public class DataBean {
private String a9;
private String a10;
private String a11;
private String a12;
public String getA9() {
return a9;
}
public void setA9(String a9) {
this.a9 = a9;
}
public String getA10() {
return a10;
}
public void setA10(String a10) {
this.a10 = a10;
}
public String getA11() {
return a11;
}
public void setA11(String a11) {
this.a11 = a11;
}
public String getA12() {
return a12;
}
public void setA12(String a12) {
this.a12 = a12;
}
}
2)TestController에서 bean에 값을 세팅
@Controller
public class TestController {
@GetMapping("/test1")
public String test1(DataBean bean, Model model) {
bean.setA9("data2");
bean.setA10("data2");
bean.setA11("data2");
bean.setA12("data2");
return "test1";
}
}
3)test1.jsp 생성
<form:form action='result' modelAttribute="dataBean">
<form:radiobutton path="a9" value="data1"/>항목1
<form:radiobutton path="a9" value="data2"/>항목2
<form:radiobutton path="a9" value="data3"/>항목3
<hr/>
<form:radiobuttons path="a10" items="${requestScope.data_list1 }"/> ---------------------- 배열 사용해보기
<hr/>
<form:radiobuttons path="a11" items="${requestScope.data_list2 }"/> --------------------- ArrayList사용해보기
<hr/>
<form:radiobuttons path="a12" items="${requestScope.data_list3 }" itemLabel="key" itemValue="value"/>--------------- KeyValue 사용해보기
</form:form>
'SPRING' 카테고리의 다른 글
[SPRING] Request Scope (0) | 2021.07.25 |
---|---|
[SPRING] Redirect와 Forward (0) | 2021.07.24 |
[SPRING] FORM TAG 요소 - 1 (0) | 2021.07.21 |
[SPRING] Form 커스텀 태그 (0) | 2021.07.20 |
[SPRING] 커맨드 객체 (0) | 2021.07.20 |
댓글