2010-11-09 79 views
4

我只想用一個requestparameter發送我的dropdownlist的值。在我的情況是在Spring MVC中傳遞一個請求參數3

Kidscalcula_web/start.htm?klasid=myValueHere 

我知道這樣做的方式,但它聽起來是非常不合理的使用它。如果我感到無聊,我可能會寫一些jQuery來做一個帖子併發送參數給實例。現在聽起來像手動創建我的請求字符串是一個非常糟糕的主意,因爲Spring會處理這個問題。那麼我怎樣才能製作一個簡單的表單,只需將我的下拉列表發送到我的控制器?

這只是我找不到東西這麼瑣碎的任何地方,和你一個也許可以幫助我quickly.I假設控制器將是一樣微不足道:

@RequestMapping(value = "post") 
    public String postIndex(@RequestParam("klasid") String klasid, HttpServletResponse response, 
      HttpServletRequest request) { 
} 

可我真的找不到有關如何讓JSP爲我發送該值的任何示例。 <form> taglib可以嗎?

回答

11

<form> taglib通常與form-b​​acking命令對象一起使用,而不是綁定到使用單個參數的控制器。這就是爲什麼你不會看到任何組合在一起使用的任何文檔示例。

例如,而不是@RequestParam("klasid"),你必須有一個名爲klasid領域的命令類和Spring將一大堆綁定在一起:

@RequestMapping(value = "post") 
public String postIndex(@ModelAttribute MyCommandClass command) { /../ } 

這是有道理的,當你考慮到通常的形式有多個參數,並且使用@RequestParam來聲明它們會變得很麻煩。儘管如此,你仍然可以這麼做 - 任何表單控件都會生成@RequestParam可以綁定的請求參數,但是如果你選擇偏離Spring MVC的form-b​​acking命令模式,那麼這很不方便。

+0

我們的應用程序啓動之前,我們需要問我們的用戶進行了在一個cookie舉行一個選擇;但它確實聽起來像是將一個值放在命令類中的過度殺傷力。這就是爲什麼我想知道是否沒有其他可以使用。 – toomuchcs 2010-11-09 23:01:22

+0

參數是否應該在「{/../}」中傳遞? – 2015-10-10 08:21:45

3

你甚至不需要一個taglib發送這個請求。您可以創建一個method = "GET" HTML simpliest形式(什麼是method默認值):

<form action = "..."> 
    <select name = "klasid"> 
     <option value = "value1">Option 1</option> 
     <option value = "value2">Option 2</option> 
     <option value = "value3">Option 3</option> 
    </select> 
    <input type = "submit" /> 
</form>