4

Play 2.0 アプリケーションで Multiselect を動作させるのに大きな問題があります。

Googleで見つけたさまざまなソリューションを試しましたが、2.0.1では機能しません。

複数選択を機能させるためのガイドやヒントはありますか?

html...

<select multiselect="multiselect" ... name="groupIds[]"> ... </select>

フォーム

class UserAdminForm{

public Long[] groupIds;

}

そして後でリクエストハンドラーで...

Form<UserAdminForm> form = uform.bindFromRequest(); // Bam , [NumberFormatException: For input string: ""] 

POST 配列を処理する良い方法はありますか?

4

4 に答える 4

1

次のようなテンプレートを作成できます。

@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*) (implicit handler: FieldConstructor, lang: play.api.i18n.Lang)

@values = @{ field.indexes.map { v => field("[" + v + "]").value } }

@input(field, args:_*) { (id, name, value, htmlArgs) =>
<select id="@id" name="@name" @toHtmlArgs(htmlArgs) multiple="multiple">
    @options.map { v =>
<option value="@v._1" @{if(values.contains(Some(v._1))) "selected" else ""}>@v._2</option>
    }
 </select>
}

この例はplay-framework ディスカッション グループにあります。

于 2012-12-28T00:04:41.430 に答える
0

エラーは次のとおりです。

NumberFormatException: For input string: ""

これは、数値に変換できない空の文字列を受け取っていることを意味します。そのフィールドで値を取得できない可能性がある場合は、フォームのフィールドをオプションとしてマークすることをお勧めします。

于 2012-05-09T15:31:47.180 に答える
0

以下の私の例を参照してください play 2.2

複数選択ドロップダウンのオプションは、データ HashMap にあります。

@(data:HashMap[String, HashMap[String,String]])
@import helper._

@select(field = myform("options"), options = data.get("options").toSeq, 
'_label -> "My Options*", '_showConstraints -> false, 'class ->"required", 
'id->"options", 'multiple->"multiple")
于 2014-07-09T21:38:58.987 に答える