2016-04-12 67 views
1

我正在使用Spring MVC框架和JSP來處理我的視圖。我想知道如何最好地表示從我用作模型屬性的bean中的屬性派生出的字段。在我的例子中,一個DisplayName字段由一個人可能擁有的各種名字字段(第一,最後,中間,前綴等)構建而成。在JSP中代表從一個bean中的其他字段構建的字段

舉例來說,如果我有一個Person bean,它看起來是這樣的:

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; 
    } 
} 

所以,如果我想我的顯示名稱到所有這些領域的一些邏輯組合,然後顯示在JSP如何我應該建立起來嗎?

我應該在控制器中創建一個「displayName」字符串,然後將其作爲附加模型屬性傳入?

我是否應該在bean中創建一個方法(參見上面的例子),然後從JSP中訪問它?使用下面似乎爲我工作:

$ {person.getDisplayName()}

什麼是處理這種模式的正確方法?

編輯附加信息 在我的控制,我傳遞一個Person對象作爲一個模型屬性

@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"; 
    } 

然後在視圖JSP我訪問它像這樣

<div> 
    First Name: ${person.firstName} 
    Display Name: ${wondering how to do this} 
</div> 
+1

您的問題不明確。要開始,單獨打印什麼或不打印? (預計將打印'Person#toString()')。如果它已經不打印任何東西,那麼您需要退後一步,專注於如何爲視圖準備模型,而不是關注模型的屬性。 – BalusC

+0

訪問JSP中Person對象的屬性(例如,$ {person.firstName})。編輯的問題來形容。謝謝。 – Luke

+0

哦,現在我明白了。你基本上需要'$ {person.firstName} $ {person.middleName} $ {person.lastName}'在一個單獨的調用中如'$ {person.displayName}'?並且你有一個'public String getDisplayName(){return firstName +「」+ middleName +「」+ lastName; }'這個方法似乎不打印任何東西?你爲什麼不在任何地方顯示有問題的方法? – BalusC

回答

1
Display Name: ${person.displayName} 

只要您在Person課程中有public String getDisplayName()方法,就應該可以工作,它是簡單而合理的做法。

相關問題