2010-05-25 13 views
28

Bahar MVC'de basit bir Harita yerine ModelMap kullanmanın yararları nelerdir. Kod uygulamasında, haritada eklenen öznitelik veri türünü formda kullanılabilir hale getirmek yerine anahtar olarak görüyoruz.ModelMap kullanımı ilkbaharda

Bir örnekle açıklayabilir mi?

cevap

44

ModelMap alt sınıfları LinkedHashMap ve bazı ek kolaylıklar sağlar biraz daha kolay sadece bir değerle çağrılabilir kontrolörleri

  • addAttribute olarak kullanmak yapmak ve harita anahtarı daha sonra tip anlaşılmaktadır.
  • addAttribute yöntemlerinin tümü ModelMap'u döndürür, böylece birlikte çağrılan zincirleme yöntemini kullanabilirsiniz, örn.
  • addAttribute yöntem modelMap.addAttribute('x', x).addAttribute('y',y) değerleri boş olmadıklarını kontrol
  • ModelMap ait genel tür bir görünüm modeli için mantıklı tek Map<String, Object>, sabitlenir
  • .

Bu yüzden, dünyayı rahatsız eden hiçbir şey yok, ancak onu Map numaralı ham maddeden biraz daha iyi hale getirecek kadar. Bahar, birini kullanmana izin verecek.

Ayrıca, addAttribute yöntemlerinden başka hiçbir şey sağlamayan Model arabirimini de kullanabilirsiniz ve ExtendedModelMap sınıfının kendisi tarafından daha fazla kolaylık sağlayan bir sınıftır. UI araçları ile kullanım için model verileri oluştururken

+1

Çok güzel bir açıklama. ModelMap.put ve 'ModelMap.addAttribute 'yöntemleri arasındaki farkı bilmek istiyorum. LinkedHashMap'i genişlettiği için put yönteminin kullanılabilir olduğunu biliyorum. Yöntemlerden herhangi birini kullanmak için performansta herhangi bir fark yaratır. Şimdiden teşekkürler. –

+0

Bu cevabın, başka bir web sitesinin Nisan 2016 tarihli yazıya işaret ettiğini belirtmek istiyorum: http://crunchify.com/spring-mvc-how-to-access-modelmap-values-in -a-jSP / – ndurante

2

ModelMap.addAttribute BOŞ çek yapacak, ModelMap.put LinkedHashMap

0

ModalMap devralan edilir kullanılmak üzere Haritasının LinkedHashMap

Uygulama uzanır. Zincirleme çağrıları ve model özellik isimlerinin oluşturulmasını destekler.

Bu sınıf, Servlet ve Portlet MVC için genel model tutucu görevi görür, ancak bunlardan herhangi birine bağlı değildir. Aynı amaca hizmet eden bir Java-5 tabanlı arayüz varyantı için Model arayüzüne bakın.