2012-11-16 52 views
2

我在這裏遇到問題,我需要您的幫助。spring mvc - 如何在不創建視圖的情況下從控制器檢索值

我試圖從控制器中檢索一個整數值到jsp。

在我的jsp我有一個Ajax調用:

$("#hdnCustomerSize").load(contextPath+"/customer/size", function() { 
// some codes 
}); 

在我的控制器:

@RequestMapping(method = RequestMethod.GET, value="/size") 
public void getCustomerSize(Model model) { 
    model.addAttribute("customerSize", customerService.getCustomers().size()); 
} 

我的問題是即時得到一個異常:

javax.servlet.ServletException: Could not resolve view with name 'customer/size' in servlet with name 'tombuyandsell'. 

我知道即時得到這個例外是因爲我故意沒有在views.properties中映射這個。原因是我只想獲得整數值size而不是整個jsp頁面。請幫忙。

+0

由於這個question..i學會了一些ResponseBody – user533

+0

@PratapMurukutla不客氣。 – NinjaBoy

回答

2

使用@ResponseBody註釋並將int作爲字符串返回。 @ResponseBody將導致返回類型被寫入響應HTTP主體。

@RequestMapping(method = RequestMethod.GET, value="/size") 
@ResponseBody 
public String getGroupChatSize(Model model) { 
    return Integer.toString(customerService.getCustomers().size()); 
} 

Documentation

+0

我該如何將值存儲在$(「#hdnCustomerSize」)中,因爲該值未存儲在模型中? – NinjaBoy

+0

@NinjaBoy @NinjaBoy使用load方法,你可以對這個控制器進行ajax調用,它返回你的列表的大小,它將被放置在你用jquery選擇的元素中。如果您只想獲取數據,然後執行一些操作,請使用'$ .post()' –

+0

我嘗試使用alert來顯示。順便說一句,hdnCustomerSize是隱藏的形式,我放在我的jsp的某處。我這樣做是爲了顯示$(「#hdnCustomerSize」)。load(contextPath +「/ customer/size」,function(){alert($(「#hdnCustomerSize」).val()); });它只是提醒一個空值。 – NinjaBoy

1

嘗試用@ResponseBody

@ResponseBody 
@RequestMapping(method = RequestMethod.GET, value="/size") 
public int getGroupChatSize() { 
    return customerService.getCustomers().size(); 
} 
相關問題