Spring 3 Object Converter

Simak gambar ini :

Desain Form

Desain Form

Jika kita lihat kode htmlnya maka seperti berikut :

Select box di JSP (inspect element)

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

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

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 ..

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>