2013-07-26 61 views
0

我使用Spring 3.在我的jsp我有一個表格春季3,從JSP數據傳遞到控制器

<form action='componentAction.html' method='POST'> 
    <input type='hidden' id='action_' name='componentAction' value=""/> 
</form> 

形式的行動改變開始,停止或暫停的值。

我也有3個按鈕:開始,停止和暫停。按下其中一個按鈕時,表格的值會改變。

<input type="button" value="Start" onclick="changeFormValueAndSubmit('start')"> 
<input type="button" value="Stop" onclick="changeFormValueAndSubmit('stop')"> 
<input type="button" value="Pause" onclick="changeFormValueAndSubmit('pause')"> 

我希望能夠在新聞發生後通過ajax調用將表格的值發送到我的控制器。

有人可以告訴我正確的做法嗎? Alsos應該使用POST還是GET?

我曾嘗試以下教程如
http://www.raistudies.com/spring/spring-mvc/ajax-spring-mvc-3-annonations-jquery/
http://hmkcode.com/spring-mvc-json-json-to-java/
http://java.dzone.com/articles/using-spring-mvc%E2%80%99s
但我非常失敗。

感謝任何人提前爲他們的hlep!

+0

你能告訴我們你試過了嗎? – Niranjan

+0

我發佈的所有鏈接我都試過了。然而,他們沒有工作,因爲我無法獲得我發送的價值。 – Quillion

回答

1

使用jQuery你可以用你的changeFormValueAndSubmit下列()函數

function changeFormValueAndSubmit(buttonName) { 
    var formData = $('form').serialize(); 
    jQuery.post('/path', formData, function(d) { 
     // handle response 
    }); 

    ... 
} 

注意:在這個例子中,jQuery將在您的形式發送所有的數據字段。

讓你在JSP中包含jquery框架,並且在春天還有一個控制器方法來處理POST。

POST優於GET。

在服務器端使用Spring 3個註解,像

@Controller 
public class ExampleController { 

    @ResponseBody 
    @RequestMapping(value = "/path", method=RequestMethod.POST) 
    public String post(@RequestParam String componentAction) { 
     // do work 
     ... 
     return "OK"; // depends on what you need to send back... 
    } 


} 

您必須啓用MVC的註解。請參閱http://static.springsource.org/spring/docs/3.0.x/reference/mvc.html#mvc-annotation-driven

+0

這太棒了。你能否也請告訴我如何在控制器內的服務器端接收它? – Quillion

+0

查看此次更新回答 –

+0

謝謝:)這就是我一直在尋找什麼和其他教程從來沒有說過 – Quillion

0

POST或GET將確定表單數據是以URL(GET)還是嵌入在http請求消息正文(POST)中編碼發送的。由於它是ajax調用,所以URL不會直接顯示給用戶,但是無論哪種方式,用戶都可以在瀏覽器的開發工具下看到請求的內容。

讓Spring將流量引導到你的JSP最簡單的方法是像這樣的:

<servlet-mapping> 
    <servlet-name>MyJSPServlet</servlet-name> 
    <url-pattern>/urlFromOutside</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>MyJSPServlet</servlet-name> 
    <jsp-file>/pathToJspFile/MyJspFile.jsp</jsp-file> 
</servlet> 

要獲取表單數據,在你的JSP文件中,您可以訪問請求對象,並可以得到參數像這樣:

<%= request.getParameter("componentAction") %>