Revel 重定义错误提示信息

Revel中可以用Validate来检查参数是否正确 用户请求是否给出了某个参数 revel的示例代码如下:

func (c MyApp) SaveUser(username string) revel.Result {
	// Username (required) must be between 4 and 15 letters (inclusive).
	c.Validation.Required(username)
	c.Validation.MaxSize(username, 15)
	c.Validation.MinSize(username, 4)
	c.Validation.Match(username, regexp.MustCompile("^\\w*$"))

	if c.Validation.HasErrors() {
		// Store the validation errors in the flash context and redirect.
		c.Validation.Keep()
		c.FlashParams()
		return c.Redirect(Hotels.Settings)
	}

	// All the data checked out!
	...
}

看上面代码中的c.Validation.Required(username) 如果username参数确实 那么c.Validation.HasError条件就为真 在HTML模板提示里会有写Required xxx 

看起来一起都很完美啊 但是 要命的是当我想提示中文 并且覆盖掉Requried这个默认的提示消息前缀时 噩梦开始了 试了很多办法 都不能去掉这个Required前缀 最后没办法了 只能看Revel的源码 然后在github上找到了一些提示 可以自己定义 看这里

需要自己去实现一个validator的接口:

type Validator interface {
    IsSatisfied(interface{}) bool
    DefaultMessage() string
}

定义好接口:

func (t TokenValidator) DefaultMessage() string {
    return string(t)
}
func (s TokenValidator) IsSatisfied(token interface{}) bool {
	if token == nil {
		return false
	}

	tk := token.(Oauth)
	if tk.authToken == "" || tk.refreshToken == "" {
		return false
	}

	return true
}

可以使用啦:
# type TokenValidator string
c.Validation.Check(token, TokenValidator(err.Error()))

转载于:https://my.oschina.net/pengfeix/blog/110751

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值