我在表單中有一個多選。在調試模式下,interestedIn的boundForm的數據僅爲2(列表中第一項的ID),但我想要使用以下格式獲取所有選定項目Play Framework初學者。從表格中獲取數據
my createuser.scala.html。
...
<select class="form-control select2-multi" name="interestedIn" id="interestedIn" multiple="multiple">
@for(interest <- interests){
<option value="@interest.interestId">@interest.interestName</option>
}
</select>
@helper.inputText(userForm("user"), 'class -> "form-control"
...
當我在數據調試這個線
Http.MultipartFormData body = request().body().asMultipartFormData();
我可以看到,在多個選擇所有所選擇的元素interestedIn []數組。
但是當我在一個模型上定義一個表單時,我只能得到一個元素。可能這是因爲我在列表<>而不是地圖上呈現視圖?如何保存我在Map中的值?
private static final Form<BusyUser> userForm = Form.form(BusyUser.class);
Form<BusyUser> boundForm = userForm.bindFromRequest();
List<Interest> interests= NeoDataProvider.getInterests(play.api.i18n.Lang.defaultLang().language());
BusyUser user = boundForm.get();
user.mail=user.user; //here I assign the mail of the user the value from the createUser form field
user.active=true;
//HERE I WANT TO GET THE DATA FROM THE MULTIPLE SELECT
BusyUser.class:
public long id;
@Id
@Constraints.Required(message = "*")
@Constraints.Email(message = "?")
public String user;
@Constraints.Required(message = "*")
@Column(unique=true)
public String visibleUsername;
//@Transient
public String password;
//@Constraints.Required(message = "*")
public String name;
//@Constraints.Required(message = "*")
@Constraints.Email(message = "?")
@Column(unique=true)
public String mail;
public Boolean active;
@Formats.DateTime(pattern = "yyyy-MM-dd HH:mm:ss")
public Date lastLogin;
public String authToken;
public String language;
public BusyUser(){}
當我想定義一個列表,其中我會保持選定的項目從形式
public List<String> interestedIn = new ArrayList<>();
我收到此錯誤信息:
'basic' attribute type should not be a container
我怎樣才能保持所有選擇在Java列表或數組中選擇多個d項目?
感謝您的數據!我會盡快檢查 –
無論如何,它只會得到第一個選定項目的ID。它沒有得到所有選定的值 –
這很奇怪,因爲我使用這種方法,多選和檢查按鈕 –