Simak gambar ini :

Desain Form
Jika kita lihat kode htmlnya maka seperti berikut :

Select box di JSP (inspect element)
Pada saat form tersebut di POST .. maka disisi java Item Category akan bernilai String …, Sehingga kita harus mengconvert Item Category Id menjadi Object ItemCategory terlebih dahulu, baru kemudian kita set ke object Item sebagai foreign key .. kurang lebih seperti ini :

Calling Spring Conversion in Java Controller
Kini hal tersebut tidak perlu lagi .. kita tidak perlu lagi meng convert secara manual seperti diatas. .. .dengan menggunakan Spring 3 hal itu bisa di tanggulangi .. berikut caranya :
applicationContext.xml tambahkan :

Register Spring Conversion Object
Buat Class Converter yang dimaksud .. dalam contoh ini saya buat class ItemCategoryConverter.java yang berada pada package com.riset.converter.ItemCategoryConverter
package com.riset.converter; import org.springframework.core.convert.converter.Converter; import com.riset.model.ItemCategory; public class ItemCategoryConverter implements Converter { @Override public ItemCategory convert(String arg0) { long id = 0; try { id = Long.parseLong(arg0); } catch (Exception e) { e.printStackTrace(); } return new ItemCategory(id); } }
Sehingga di sisi controller kita tidak perlu lagi mengconvert secara manual … di ItemController kita bisa langsung melakukan save .. seperti ini :
@RequestMapping(value = "/save", method = RequestMethod.POST) public String performAddPost(@ModelAttribute Item item, Model model) { try { logger.debug("Perform ADD POST"); if (item.getId() == 0) { itemService.save(item); } else { itemService.update(item); } } catch (Exception e) { e.printStackTrace(); } return redirectToList; }
Mudah kan .. ? Spring gitu loh ..