Thursday, September 18, 2014

Lesson 20: pre-selected drop-down-menu value

ternyata untuk menentukan option yang uda kepilih (default / pre-defined) itu ada caranya.
ini implementasi di Spring MVC.
misalnya yang pernah gue coba itu harus tambahin sejenis variabel/parameter 'selected' di file jsp:

<form:select path="region" id="bscregion" name="bscregion">
<option value="">Select</option>
<c:forEach items="${ areas }" var="hehe">
<option value="${hehe.region}" ${hehe.region == region_selected ? 'selected' : ''}>
${ hehe.region }
</option>
</c:forEach>
</form:select>

di file controller harus tambahkan line berikut:
List<HotnewsBtsBuffer> allArea = hotnewsBtsBufferService.getAllArea();
model.addAttribute("areas", allArea);

untuk menambahkan fungsi getAllArea, perlu edit 2 file, satu file java satu lagi file xml
isinya seperti ini:

file xml:
<select id="getAllArea" resultMap="result" parameterType="map">
SELECT DISTINCT region FROM table WHERE region IS NOT NULL
</select>

file java (persistence)
public List<HotnewsBtsBuffer> getAllArea();

*nama kedua file harus sama hanya berbeda di extension aja

langkah terakhir adalah menambahkan parameter/variabel 'region_selected' :
model.addAttribute("region_selected", hotnewsBtsBuffer.getRegion());
*value variabel/param ini bisa didapet dalam file jsp yang diakses sebelumnya (option mana yang dipilih user)

model datanya dari HotnewsBtsBuffer kira-kira seperti berikut:
public class HotnewsBtsBuffer {
...
private String region;
...

//setter & getter
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
}

Contoh implementasi adalah supaya drop-down menu yang uda kita pilih akan terbawa ke form berikutnya, misalnya setelah kita klik 'Search' button.

soalnya katanya gak bisa mapping List ke <form:input>
http://stackoverflow.com/questions/13838021/spring-input-path-for-list
*gua pikir juga susah/ribet sih..

No comments:

Post a Comment