Java Play2框架初学者。从<;获取所有选定元素;选择>;

Java Play2框架初学者。从<;获取所有选定元素;选择>;,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我已将select2多选项选择框添加到我的网页中。 如何从该选择字段中获取所有选定元素以将其添加到数组中?(我将选择数限制为5)谢谢 以下是我的代码(我使用的是neo4j图形数据库): Html格式: <select class="form-control select2-multi" name="interest" multiple="multiple"> @for(interest <- interests){ <option value=

我已将select2多选项选择框添加到我的网页中。

如何从该选择字段中获取所有选定元素以将其添加到数组中?(我将选择数限制为5)谢谢

以下是我的代码(我使用的是neo4j图形数据库):

Html格式:

<select class="form-control select2-multi" name="interest" multiple="multiple">
    @for(interest <- interests){
        <option value="@interest.interestId">@interest.interestName</option>
    }
</select>
获取表单数据的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));
    }

}
private静态最终表单userForm=Form.Form(BusyUser.class);
//我的保存方法
公共静态结果保存()
{
//我从数据库中获取的兴趣列表
List interests=NeoDataProvider.getInterests(play.api.i18n.Lang.defaultLang().language());
Http.MultipartFormData body=request().body().asMultipartFormData();
试一试{
Form boundForm=userForm.bindFromRequest();
if(boundForm.hasErrors()){
闪光(“错误”,“!”);
返回badRequest(createuser.render(boundForm,interests));
}
BusyUser user=boundForm.get();
user.mail=user.user;
user.active=true;
user.lastLogin=新日期();
user.password=BusyUser.bytesToHex(BusyUser.getSha512(user.password));
节点nodeEvent=null;
GraphDatabaseService db=Neo4JHelper.getDatabase();
try(事务tx=db.beginTx())
{
Index userIndex=db.Index().forNodes(ModelIndex.UsersSecurity);
nodeEvent=db.createNode();
setProperty(ModelGraphProperty.BusyUser.Active,true);
setProperty(ModelGraphProperty.BusyUser.Mail、user.Mail);
setProperty(ModelGraphProperty.BusyUser.Password、user.Password);
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));
添加(nodeEvent、ModelGraphProperty.BusyUser.Password、nodeEvent.getProperty(ModelGraphProperty.BusyUser.Password));
添加(nodeEvent、ModelGraphProperty.BusyUser.User、nodeEvent.getProperty(ModelGraphProperty.BusyUser.User));
//userIndex.putIfAbsent(nodeEvent、ModelGraphProperty.BusyUser.Mail、user.Mail);
成功();
}
db.shutdown();
闪光(“成功”,
String.format(“已成功添加用户%s”,user.user));
返回重定向(routes.Application.login());
}捕获(例外情况除外){
闪光(“错误”,“!”);
返回badRequest(createuser.render(userForm,interests));
}
}

您只需读取所有多选数据,而不必填写表单中的name=“interestedIn”name=“intrestedIn[]”并声明
List intrestedIn=new ArrayList()之后,您可以遍历列表并获得如下数据

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);
}
字符串值=null;

for(int i=0;iit不会自动将表单的数组分配给模型中感兴趣的In arrayList。如何将请求中的元素添加到arrayList?
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);
}