2017-02-10 10 views
1

Я добавил на свою веб-страницу select2 mutliple select box. https://select2.github.io/examples.html#multiplePlay2 Framework новичок. Получить все выбранные элементы от <select>

looks like this

Как я могу захватить все выбранные элементы из этого выбора поля, чтобы добавить их в массив? (Я ограничивал число выбирает 5) Спасибо!

Вот мой код (я использую Neo4j базы данных графика):

Html форма:

<select class="form-control select2-multi" name="interest" multiple="multiple"> 
    @for(interest <- interests){ 
     <option value="@interest.interestId">@interest.interestName</option> 
    } 
</select> 

BusyUser модель:

@Entity 
public class BusyUser { 
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 BusyUser(Node node) 
{ 
    this.id=node.getId(); 
    this.password=(String)node.getProperty(ModelGraphProperty.BusyUser.Password,""); 
    this.mail=(String)node.getProperty(ModelGraphProperty.BusyUser.Mail,""); 
    this.user=(String)node.getProperty(ModelGraphProperty.BusyUser.User,""); 
    this.visibleUsername=(String)node.getProperty(ModelGraphProperty.BusyUser.VisibleUsername,""); 
    this.user=(String)node.getProperty(ModelGraphProperty.BusyUser.UserName,""); 
    this.language=(String)node.getProperty(ModelGraphProperty.BusyUser.Language,""); 
    this.authToken=(String)node.getProperty(ModelGraphProperty.BusyUser.Token,""); 
} 

Users.class где я захватывая форму данные:

private static final Form<BusyUser> userForm = Form.form(BusyUser.class); 


//my save method 

public static Result save() 
{ 
    //the list of interests that I am grabbing from the database 
    List<Interest> interests= NeoDataProvider.getInterests(play.api.i18n.Lang.defaultLang().language()); 

    Http.MultipartFormData body = request().body().asMultipartFormData(); 

    try { 
     Form<BusyUser> boundForm = userForm.bindFromRequest(); 
     if(boundForm.hasErrors()) { 
      flash("error", "!"); 
      return badRequest(createuser.render(boundForm, interests)); 
     } 

     BusyUser user = boundForm.get(); 
     user.mail=user.user; 
     user.active=true; 
     user.lastLogin=new Date(); 
     user.password=BusyUser.bytesToHex(BusyUser.getSha512(user.password)); 

     Node nodeEvent = null; 
     GraphDatabaseService db= Neo4JHelper.getDatabase(); 
     try (Transaction tx = db.beginTx()) 
     { 
      Index<Node> userIndex = db.index().forNodes(ModelIndex.UsersSecurity); 

      nodeEvent = db.createNode(); 
      nodeEvent.setProperty(ModelGraphProperty.BusyUser.Active, true); 
      nodeEvent.setProperty(ModelGraphProperty.BusyUser.Mail, user.mail); 
      nodeEvent.setProperty(ModelGraphProperty.BusyUser.Password, user.password); 
      nodeEvent.setProperty(ModelGraphProperty.BusyUser.User, user.mail); 
      nodeEvent.setProperty(ModelGraphProperty.BusyUser.VisibleUsername, user.visibleUsername); 
      Node res=userIndex.putIfAbsent(nodeEvent, ModelGraphProperty.BusyUser.Mail, nodeEvent.getProperty(ModelGraphProperty.BusyUser.Mail)); 
      userIndex.add(nodeEvent, ModelGraphProperty.BusyUser.Password, nodeEvent.getProperty(ModelGraphProperty.BusyUser.Password)); 
      userIndex.add(nodeEvent, ModelGraphProperty.BusyUser.User, nodeEvent.getProperty(ModelGraphProperty.BusyUser.User)); 

      //userIndex.putIfAbsent(nodeEvent,ModelGraphProperty.BusyUser.Mail,user.mail); 
      tx.success(); 
     } 

     db.shutdown(); 

     flash("success", 
       String.format("Successfully added user %s", user.user)); 

     return redirect(routes.Application.login()); 
    }catch(Exception ex){ 
     flash("error", "!"); 
     return badRequest(createuser.render(userForm, interests)); 
    } 

} 

ответ

1

Вы можете просто прочитать все данные MULTISELECT только вместо имени = «interestedIn» в вашей форме записи name="intrestedIn[]" и объявить List<Long> intrestedIn= new ArrayList<Long>(); в вашем BusyUser.java после этого вы можете перемещаться по списку и получить данные, такие как

String value=null; 
for(int i=0;i<intrestedIn.size();i++){ 
value=intrestedIn.get(i); 
//do whatever you want to do with this value 
System.out.println(value); 
} 
+0

спасибо много! –

+0

он не присваивает автоматически массив из формы в список интересующих объектов из моей модели. Как добавить элементы из запроса в arrayList? –

 Смежные вопросы

  • Нет связанных вопросов^_^