无法将ID从gsp传递给控制器

时间:2018-04-16 10:43:28

标签: java grails groovy

我想将id =“$ {training.id}”传递给组合控制器与控制器内的confirm()函数。但是当我传递它时,它显示我的NULL结果。(id )我打印是NULL。

gsp文件

<g:each in="${trainingLists}" var="training">
    <div class="card">
        <div class="card-header">
            <h3>Organization Name:</h3>${training.organization.orgName}</div>
        <div class="card-body">
            <h3>Organization Description:</h3>${training.organization.orgDesc}</div>
        <div class="card-body">
          <h3>Training Available:</h3>${training.name}</div>
    <sec:ifNotLoggedIn>
        <g:link controller="organization" action="notconfirmed">Apply</g:link>
    </sec:ifNotLoggedIn>
        <sec:ifLoggedIn>
            <g:link action="confirmed" id="${training.id}">Apply</g:link>
        </sec:ifLoggedIn>
    </div>
    <br>
</g:each>

Organization.controller

def confirmed(){
        def id = params.id
        println(id)

    }

2 个答案:

答案 0 :(得分:1)

你的gsp <g:link>看起来不错。

请调试并检查${training.id}是否有有效身份证明。

<g:link controller="organization" action="confirmed" id="${training.id}">Apply</g:link>

仍然遇到问题,然后临时硬编码ID和检查 例如:

<g:link controller="organization" action="confirmed" id="2">Apply</g:link>

现在在地址栏中,您会像localhost:8080/organization/confirmed/2这样的网址,而控制器println也会打印2。

您可以查看documentation了解更多属性和选项

答案 1 :(得分:0)

您可以按照以下方式执行此操作。

<g:link action="confirmed" params="[id: training.id]">Apply</g:link>

def confirmed(){
        def id = params.id
        println "Training Id: "+id

}