在提交表单后但在Grails中呈现视图时更改URL
大家好,Grails社区,无论您在哪里!我面临一个很酷的问题。。。甚至是想法。我需要一些帮助 我想做的是: 提交带有短语的搜索表单。让我们说“裤子”。 值提交到/search/list searchController=>list方法 调用finder返回不同商店a、b、c和不同类别aaa、bbb、ccc的裤子列表。 默认情况下/search/list是呈现的URL,我可以在其中显示列表,但不是。。。 myapp.com/search/list?search=裤子 我想在浏览器中这样显示URL myapp.com/a-b-c/aaa-bbb-ccc?搜索=裤子 不使用urlMapping重定向,从而再次调用list方法 当然,在没有提交搜索表单的情况下,相同类型的URL会给出相同的裤子列表,只是我会在开始商店=[a,b,c],类别=[aaa,bbb,ccc]和搜索短语裤子中有更多的标准 我希望我的声音足够清晰。开箱思考在提交表单后但在Grails中呈现视图时更改URL,url,search,grails,mapping,render,Url,Search,Grails,Mapping,Render,大家好,Grails社区,无论您在哪里!我面临一个很酷的问题。。。甚至是想法。我需要一些帮助 我想做的是: 提交带有短语的搜索表单。让我们说“裤子”。 值提交到/search/list searchController=>list方法 调用finder返回不同商店a、b、c和不同类别aaa、bbb、ccc的裤子列表。 默认情况下/search/list是呈现的URL,我可以在其中显示列表,但不是。。。 myapp.com/search/list?search=裤子 我想在浏览器中这样显示URL
另外,也许你知道一些用Ruby、Java或PHP来处理这种情况的解决方案?好吧,你可以使用urlmappings来解决这个问题
"/$shops/$categories/$search" {
controller = "search"
action = "list"
constraints {
shops(matches:/\w-\w-\w/)
categories(matches:/\w+-\w+-\w+/)
}
}
如果我的正则表达式匹配正确,那么
是否匹配myapp.com/a-b-c/aaa-bbb-ccc?搜索=裤子和裤子
将匹配myapp.com/a-b-c/aaa-bbb-ccc/pants
我认为还可以在urlmappings中添加一些预处理,例如
"/$shops/$categories/$search" {
...
shops = shops.split('-')
categories = categories.split('-')
...
}
然而,我对此不是100%肯定。重点是,当我提交搜索表单时,我唯一的变量是在params中搜索短语“pants”。下一步是对包含商店和类别的列表进行细化。有了这一点,我可以使用您提到的split来准备两个字符串,即“a-b-c”用于商店,而“aaa-bbb-ccc”用于类别。现在是棘手的部分,因为我想显示url,它是基于我刚刚在search controller中调用list方法得到的变量的,没有重定向,因此重新搜索,从url商店获得额外的参数=>['a','b','c',Category=>['aaa','bbb','ccc']。顺便说一句,我试着创建一个简单的中介,它可以重定向到真正的搜索引擎。您有一个操作搜索,它除了重定向到/$shops/$categories/$search并使用正确的参数外,不做任何其他事情。不要过度设计。