2016-04-14 3 views
1

フォーム提出によるPOSTリクエストを受け付ける簡単なAPIの部分を設定しています。フォームは、ユーザが同じ名前を共有する1つ以上のチェックボックスを選択することを要求する。スプレー - チェックボックスを使用したフォームの解析

<form> 
    <input type='text' name='textval'> 
    <input type='checkbox' name='cbox' value='val1'> Value 1 
    <input type='checkbox' name='cbox' value='val2'> Value 2 
    <button type='submit'>Submit</button> 
</form> 

私はそうのようなSprayで要求を処理しようとしています:

path("mypath") { 
    post { 
    formFields('textval, 'cbox) { (textval, cbox) => 
     // Now what? 
    } 
    } 
} 

私はそのような入力を処理する方法にSpray Docsでドキュメントを見つけることができません。実際には、これは今fixedされているissueをように見えたが、私は私のニーズを満たすために、ややハック解決策を発見したスプレーAPI

答えて

0

で、このフォームフィールドを処理する方法がわからないと思います。ここで

が私の新しいフォーム

<form> 
    <input type='text' name='textval'> 
    <input type='checkbox' name='cbox1' value='val1'> Value 1 
    <input type='checkbox' name='cbox2' value='val2'> Value 2 
    <button type='submit'>Submit</button> 
</form> 

応じてルート変更

path("mypath") { 
    post { 
    formFields('textval, 'cbox1.?, 'cbox2.?) { (textval, cbox1, cbox2) => 
     complete(s"textval:'$textval', cbox1:'$cbox1', cbox2:'$cbox2'") 
    } 
    } 
} 
である私はそれらに関連付けられた値を表すために、私のチェックボックスの名称を変更している、と私は私のスプレールート内の任意のフォームフィールドを使用します

オプションのフィールドはタイプOption[String]にマッピングされ、.isEmptyなどで簡単にチェックすることができ、チェックボックスがオンになっているかどうかを判断できます。

ただし、すべてのオプションが選択されているため、チェックボックスを選択せず​​にフォームを転記できるようになります。おそらくデフォルトとして設定することができます。