嗨,这是一个示例网址mailBox/messageDetailsInbox/79
正如您所看到的,在最后一个斜杠“79”后面有ID参数。 “mailbox”是我的控制器,“messageDetailsInbox”是我的动作。我想在url中隐藏ID参数。我想要像mailBox/messageDetailsInbox
这是我的代码
<g:link action="messageDetailsInbox" id="${i.id}"> MyLink </g:link>
答案 0 :(得分:2)
简单地说,如果您需要将数据(例如您的ID)传递给您的控制器/操作,而您不想通过URL令牌或查询参数(即HTTP GET方法)来执行此操作
//GET method
http://server/controller/action/79 //token
http://server/controller/action?id=79 //query param
然后你需要做一个表格POST。但是,除非您发送大量数据或敏感数据,否则通常最好使用GET方法,因为您的网址更具书签功能。
答案 1 :(得分:1)
因此,请勿将此ID添加到链接中:
<g:link action="messageDetailsInbox"> MyLink </g:link>
如果您仍想传递ID,但又不想使用网址,则可以将其作为参数传递:
<g:link action="messageDetailsInbox" params="${[id: i.id]}"> MyLink </g:link>
答案 2 :(得分:1)
我不确定你的意思,但是:
session.current_id = 1234
或
flash.current_id = 1234
然后执行类似
的操作def msg = YouDomain.get(flash.current_id)
答案 3 :(得分:0)
在UrlsMapping.groovy
文件夹
config
文件中定义新网址
"mailBox/messageDetailsInbox"(controller: "controllerName", action: "messageDetailsInbox")
然后在post中传递参数。这将解决您的问题。
答案 4 :(得分:0)
使用
<g:form controller="SomeController" action="SomeAction" method="POST">
<g:hiddenField name="id" value="${your?.id}"/>
<input type="submit" class="text-button" value="submit"/>
</g:form>
并在同一个.gsp中在head部分添加以下css
<style type="text/css">
.text-button
{
background-color: Transparent;
text-decoration: underline;
color: blue;
cursor: pointer;
border:0
}
</style>