Simak gambar ini :
Jika kita lihat kode htmlnya maka seperti berikut :
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 :
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 :
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 ..