我无法用Form工作,这让我很困惑。 我正在使用grails 2.2.4(我们不会升级到更高的版本几个月,但我想在我的表单中添加useToken="true"。
这是我的简单工作方法:
def browse () {
def model =[:]
model += [ attr1: "attr1", attr2: "attr2"]
}
在 gsp 中,我只需打印出属性的值:
<g:form name='filterForm' action="browse" id='filterForm' method="post"
useToken="true">
browse.gsp values:
${attr1.toString()}
${attr2.toString()}
</g:form>
上面的 gsp 打印出来:浏览.gsp 值: attr1 attr2
现在,当我将 withForm 添加到控制器方法中时:
def browse () {
withForm {
def model =[:]
model += [ attr1: "attr1", attr2: "attr2"]
}.invalidToken{ response.status = 405}
}
我收到"重定向过多"错误。
该页面不需要身份验证,它所属的唯一映射是通用
"/$controller/$action?/$id?" {
constraints {
// apply constraints here
}
}
控制器没有设置拦截器之前或之后。
这发生在我使用 GGTS 作为 IDE 的本地系统上。
我在Chromium和Firefox上遇到了同样的问题
实际上,这不是问题所在。 显然,在创建一个精简的示例时,我引起了另一个问题。 然后我认为重定向是根本原因,但经过更多调试,我发现它不相关。
我最初的问题是withForm没有将任何数据从模型返回给gsp,这导致gsp生成失败。 我不确定是什么原因导致我的精简版本获得太多重定向,但此时这并不重要。
所以,我用我真正的问题提出了一个新问题,我只是回答这个问题,这样人们就不会在这个问题上花很多时间。