嗨,这是一个示例 urlmailBox/messageDetailsInbox/79
如您所见,最后一个斜杠“79”之后有 ID 参数。“邮箱”是我的控制器,“messageDetailsInbox”是我的操作。我想在 url 中隐藏 ID 参数。我想像这样自定义网址mailBox/messageDetailsInbox
这是我的代码
<g:link action="messageDetailsInbox" id="${i.id}"> MyLink </g:link>
嗨,这是一个示例 urlmailBox/messageDetailsInbox/79
如您所见,最后一个斜杠“79”之后有 ID 参数。“邮箱”是我的控制器,“messageDetailsInbox”是我的操作。我想在 url 中隐藏 ID 参数。我想像这样自定义网址mailBox/messageDetailsInbox
这是我的代码
<g:link action="messageDetailsInbox" id="${i.id}"> MyLink </g:link>
简而言之,如果您需要将数据(例如,您的 ID)传递给您的控制器/操作,并且您不想通过 URL 令牌或查询参数(即 HTTP GET 方法)来完成它
//GET method
http://server/controller/action/79 //token
http://server/controller/action?id=79 //query param
那么你需要做一个表格POST。但除非您要发送大量数据或敏感数据,否则通常最好使用 GET 方法,因为您的 URL 将更易于收藏。
因此,不要将此 ID 添加到链接中:
<g:link action="messageDetailsInbox"> MyLink </g:link>
如果您仍想传递 Id,但不想在 URL 中具有,则可以将其作为参数传递:
<g:link action="messageDetailsInbox" params="${[id: i.id]}"> MyLink </g:link>
我不确定你的意思,但是:
session.current_id = 1234
或者
flash.current_id = 1234
然后做类似的事情
def msg = YouDomain.get(flash.current_id)
UrlsMapping.groovy
在文件config
夹中的文件中定义一个新的 url
"mailBox/messageDetailsInbox"(controller: "controllerName", action: "messageDetailsInbox")
然后在post中传递参数。这将解决您的问题。
利用
<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>