Görünümlerim için Spring MVC framework ve JSP kullanarak bir Java projesinde çalışıyorum. Fasulye özelliklerinden türetilmiş alanları temsil etmenin en iyi yolunu model özniteliği olarak kullanıyorum. Örneğimde, bir kişinin sahip olabileceği çeşitli ad alanlarından (ilk, son, orta, önek vb.) Oluşan bir DisplayName alanı. ÖrneğinJSP, bir bakladaki diğer alanlardan oluşturulmuş bir alanı temsil eder
, ben şuna benzer bir Kişi fasulye varsa: Bazı mantıkla bütün bu alanları birleştirmek ve sonra nasıl JSP o göstermek görünen adımı istiyorsa Yani
public class Person {
private String lastName;
private String firstName;
.
.
.
**A bunch more name fields here
.
.
.
**All the getters and setters here
.
.
.
public String getDisplayName() {
//Simple example
return this.firstName + " " + this.lastName;
}
}
Bunu inşa etmeli miyim?
Denetleyicimde "displayName" Dizesi oluşturmalı ve sonra da ek bir model özniteliğine geçirmeli miyim?
Bu ürünü fasülyede oluşturan bir yöntem oluşturmalıyım (yukarıdaki örneğe bakın) ve daha sonra buna JSP'den erişebilir miyim? Aşağıdaki benim için çalışmaya görünüyor kullanarak:
$ {person.getDisplayName()}
bu kalıbı işlemek için uygun yolu nedir?
Düzenleme ek bilgi manken niteliği olarak bir Person nesnesi geçiyorum benim denetleyicisi olarak
@RequestMapping(value = "/path", method = RequestMethod.GET)
public String getMethod(final Locale locale, final Model model, final HttpServletRequest request) {
Person myPerson = getThePersonFromSomewhere();
model.addAttribute("person", myPerson);
return "the view";
}
Sonra görünümü JSP bu
<div>
First Name: ${person.firstName}
Display Name: ${wondering how to do this}
</div>
Sorunuz belirsiz. Başlamak için '$ {person}' tek başına bir şey mi yazdırıyor? (Kişi # toString() 'inin yazdırılması bekleniyor. Zaten hiçbir şey basmazsa, bir adım geri atmanız ve modeli modele nasıl odaklandığınıza odaklanmanız ve modelin özelliklerine odaklanmamanız gerekir. – BalusC
JSP'deki Kişi nesnesinden özelliklere erişme (örneğin, $ {person.firstName}). Anlatılacak soru düzenlendi. Teşekkürler. – Luke
Oh, şimdi anladım. Temel olarak, $ {person.displayName} 'gibi tek bir çağrıda $ {person.firstName} $ {person.middleName} $ {person.lastName}' ister misiniz? Ve bir public String getDisplayName() {return firstName + "" + middleName + "" + lastName; } 'bir şey yazdırmak için görünmüyor yöntemi? Neden sorunlu yöntemi herhangi bir yere göstermediniz? – BalusC