mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-22 09:34:33 +08:00
not allow default value on array mapping
This commit is contained in:
parent
0450799407
commit
704f5b1767
@ -1439,8 +1439,8 @@ func TestBindingArray(t *testing.T) {
|
|||||||
// default
|
// default
|
||||||
req := formPostRequest("", "")
|
req := formPostRequest("", "")
|
||||||
err := Form.Bind(req, &s)
|
err := Form.Bind(req, &s)
|
||||||
assert.NoError(t, err)
|
assert.Error(t, err)
|
||||||
assert.Equal(t, [2]int{4, 0}, s.Nums)
|
assert.Equal(t, [2]int{0, 0}, s.Nums)
|
||||||
|
|
||||||
// ok
|
// ok
|
||||||
req = formPostRequest("", "nums=3&nums=8")
|
req = formPostRequest("", "nums=3&nums=8")
|
||||||
@ -1448,8 +1448,13 @@ func TestBindingArray(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, [2]int{3, 8}, s.Nums)
|
assert.Equal(t, [2]int{3, 8}, s.Nums)
|
||||||
|
|
||||||
|
// not enough vals
|
||||||
|
req = formPostRequest("", "nums=3")
|
||||||
|
err = Form.Bind(req, &s)
|
||||||
|
assert.Error(t, err)
|
||||||
|
|
||||||
// error
|
// error
|
||||||
req = formPostRequest("", "nums=wrong")
|
req = formPostRequest("", "nums=3&nums=wrong")
|
||||||
err = Form.Bind(req, &s)
|
err = Form.Bind(req, &s)
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ package binding
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@ -122,6 +123,9 @@ func tryToSetValue(value reflect.Value, field reflect.StructField, form map[stri
|
|||||||
if !ok {
|
if !ok {
|
||||||
vs = []string{defaultValue}
|
vs = []string{defaultValue}
|
||||||
}
|
}
|
||||||
|
if len(vs) != value.Len() {
|
||||||
|
return false, fmt.Errorf("%q is not valid value for %s", vs, value.Type().String())
|
||||||
|
}
|
||||||
return true, setArray(vs, value, field)
|
return true, setArray(vs, value, field)
|
||||||
default:
|
default:
|
||||||
var val string
|
var val string
|
||||||
|
Loading…
x
Reference in New Issue
Block a user