簡體   English   中英

JSP使用Spring MVC獲取/發布

[英]JSP get/post with Spring MVC

我正在嘗試創建一個注冊表單。 在此表單中有一些字段(用戶名,密碼等)以及下拉列表框。 我的問題是這個listbox。我設法從服務器成功檢索將添加到列表框中的所有項目,我想知道將它放在這個表單中。

更具體地說,我有一個名為lista的列表,其中包含我要在列表框中添加的項目。

JSP:

<c:url var="attinto" value="/reg" />
<form:form modelAttribute="attribute" method="POST" action="${attinto}">
<table>
    .
            .

    <tr>
        <td><form:label path="researchareas">Research area:</form:label></td>
        <td>    
          <select multiple="multiple">   
            <c:forEach items="${researchareas}" var="researcharea">     
              <option value="${researcharea}">  ${researcharea} </option>                   
            </c:forEach>
          </select>    
        </td> 
    </tr>

控制器:

    @RequestMapping(value = "/reg", method = RequestMethod.GET)
    public String getform(Model model) {

        getAll(model);
        model.addAttribute("attribute", new Reg());

        return "reg";
    }

我必須在這一點上提到getAll(model)是一個類似於以下的void方法:

      model.addAttribute("researchareas",lista);

然后我創建一個POST方法來發送這些數據。

問題:如何在表單中添加列表中的數據(進入列表框)?我如何收回用戶將選擇的值?

首先,使用form:select如下:

<form:select path="researchareas" items="${researchareas}" multiple="true" />

然后Spring可以自動綁定Registration對象中的相應屬性:

@RequestMapping(value = "/registration", method = RequestMethod.POST)
public String getRegistrationForm( //
    @ModelAttribute("registrationAttribute") Registration registration, //
    BindingResult result, Model model) {
  ...
  return ...
}

假設注冊課程具有以下內容:

public class Registration {
  String username;
  String password;
  List<String> researchareas;

  ... corresponding getters and setters here
}

雖然我將name屬性命名為class,否則你必須在方法參數注釋中指定顯式名稱。

請在jsp中指定表單中的post方法,並在控制器中指定method = RequestMethod.POST

還有一件事。

在您的注冊類中,不應該將列表作為研究員的數據類型。 嘗試將數據類型設為String []

希望這對你有用。 干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM