2012-04-23 49 views
0

我是Spring和Spring MVC的新手。我在ASP.NET中開發了一些網絡應用程序,這個框架遵循的不同方法讓我感到困惑。使用Spring MVC設置控件屬性的值

現在我想要開發一個示例應用程序,我需要改變一些控件(按鈕,標籤等)的文本。

例如:我有一個按鈕,啓動/停止數據提取處理。我想將按鈕的文本設置爲「開始」,然後當我點擊它(並且進程開始)時,我想將按鈕文本設置爲「停止」。應該對幾個標籤進行類似的更改。

在ASP.NET我簡單地設置每個控件的Text財產。

如何與Spring MVC的實現這一點,從控制器?

注意 這也適用於每一個控制屬性...

回答

1

您可以將參數添加到返回的模型中。例如:

//some other controller code 
@RequestMapping("/start") 
public ModelAndView start(....) { 
     ModelAndView mav = new ModelAndView("example"); 
     mav.addObject("button_text", "START"); 

     return mav; 
} 
//... 

然後,在你的example.jsp:

<input type="button" value="${button_text}" /> 

不過,它看起來像你想實現用行動響應一個基於組件的框架內採取的想法,這可能不是最好的主意。

+0

我來自ASP.NET,所以也許你說得對,當你說:_「它看起來像你試圖使用行動響應實施基於組件的導航」 _。那麼,我應該遵循哪種方法?我的問題不正確? – davioooh 2012-04-23 09:04:10

+0

@daviooh如果你仍然可以改變框架,那麼你可能會更喜歡JSF(儘管學習spring是個好主意)。如果你不能這樣做,那就儘量不要考慮組件。在春天你會看到一些視圖(通常是jsp,這些視圖只是從純html開始的一小步),控制器(對視圖中的動作做出反應,通常形成提交和Ajax內容)和模型(從控制器發回的數據) 。春天都是鬆散耦合的。沒有從html元素到控制器/模型元素的1對1映射。 – soulcheck 2012-04-23 09:19:39

+0

因此,不要在模型中放置標籤(標籤是您的控制器不應該擔心的IMO),請發送布爾值來指示它是否已啓動,並根據該值的值決定要在視圖中顯示的標籤布爾值。但這真的取決於個人的品味。 – soulcheck 2012-04-23 09:23:42

0

我不是一個親自己,但我做的方式是用JavaScript。

某些代碼會是這樣的

function changeText() { 
    var button = document.getElementById("yourButtonId"); // same as the id attribute of the button 
    button.value = "STOP"; 
} 

然後在JSP代碼,你可以有:

<input type="button" name="someName" value="START" onclick="changeText()"/> 

我認爲可以工作。

後來編輯:我看你明確地詢問如何從控制器,它從Java代碼,對不起意味着做,如果我的回答是不是你在找什麼。

+0

謝謝你的建議。我想知道是否可以直接從代碼中設置屬性值。如果沒有,我會按照你的方法... – davioooh 2012-04-23 08:42:39