当我尝试在grails中使用remoteField ajax标记时,我发现了一些东西。当我输入&符号(&)时,在获取参数值时,我的控制器中无法识别该值。
示例:我将输入Cat&狗 我所看到的:猫
我该如何避免这种情况?这是一个已知的错误?我在网上找不到这个。
修改
我很确定这是由于url编码和参数,因为&符号通常是参数分隔符。只是不确定如何解决这个问题。
<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" />
控制器:
def getName() {
println "Search result = " + params.search
//When typing "Cat & Dog" I get:
//Search result = C
//Search result = Ca
//Search result = Cat
//Search result = Cat
//Search result = Cat
}
答案 0 :(得分:1)
您是否尝试过对remoteField
中的文字进行网址编码?
我建议使用JavaScript添加before
属性来对输入进行URL编码:
<g:remoteField action="getName" update="testDiv" paramName="search" name="nameSearchResults" value="" before="encodeURIComponent(this.value); return true;" />
然后您必须在控制器中对其进行解码。