0

我已经将数组列表值从我的控制器传递到一个 gsp 页面,在那里我可以使用键名访问数组列表的数据。在那个 gsp 页面中,我在我的 gsp 页面中添加了以下链接,例如

<g:link controller="searchFun" action="seeMore" id="" params="[q:params.q,cat:params.cat,stat:'study',ids1:'sm']">See More</g:link>

当我在其他 seemore.gsp 中访问相同的参数时,我无法使用这样的键名访问值"${fieldValue(bean: result, field: "purpose")",它会引发异常"No Such property is available for Java.lang.String"但我可以在中使用相同的代码,index.gsp上面的代码有效。

我的问题是如何将变量按原样传递给另一个动作?

这是我的控制器和操作

*class SearchFunController {
def searchableService
def index() {
def Study
def map1=new ArrayList()
def tmpStudy=Study1.search(query,[max:500])
Study=tmpStudy.results
Study.id.each{
def c=Study1.findAllById(it.value)
if(c!=null&&c.size()>0){
c.each{
def sui=it.uniqueIdentifier                                                     
def sur=StudyUserRole.findAllByStudyUIAndUserName(sui,session.user)
if(sur!=null&&sur.size()>0){
sur.each {
def stu=Study1.findAllByUniqueIdentifier(it.studyUI)
def loSui=it.id
stu.each{
if(map1==null&&map1.size()==0)
map1.add(it)
else if(!map1.containsAll(it)){
println "Added here 2"
map1.add(it)
println map1
 return [study:map1.unique()]
}}}}}}}}
def seeMore()
{
return [s:params.s]
}*

索引.gsp

*<tbody>
<g:each var="result" in="${s}" status="index">
<g:if test="${index<5}">
<tr style="max-height:10px;overflow:hidden;">
<td> ${index+1} </td>
<g:if test="${fieldValue(bean: result, field: "uniqueIdentifier")!=null}">
<td><g:link controller="searchFun" action="view" id="${fieldValue(bean: result, field: "uniqueIdentifier").replaceAll("\\[", "").replaceAll("\\]", "")}" params="[q:params.q,cat:params.cat]">${fieldValue(bean: result, field: "uniqueIdentifier").replaceAll("\\[", "").replaceAll("\\]", "")}</g:link></td>
</g:if>
<g:else>
<td>--</td>
</g:else>
<g:if test="${fieldValue(bean: result, field: "name")!=null}">
<td style="width:40%; height:2px; overflow:hidden;">${fieldValue(bean: result, field: "name").replaceAll("\\[", "").replaceAll("\\]", "")}</td>
</g:if>
<g:else>
<td>--</td>
</g:else>                       
<g:if test="${fieldValue(bean: result, field: "protocolType").equalsIgnoreCase("[null]")}">
                                            <td>--</td>
                                        </g:if>
                                        <g:else>
                                            <td><g:set var="dc" value="${fieldValue(bean: result, field: "protocolType").replaceAll("\\[", "").replaceAll("\\]", "").split(" ")}"></g:set>
                                            ${dc[0].capitalize()}
                                            </td>
                                        </g:else>
                                        <g:if test="${fieldValue(bean: result, field: "purpose").equalsIgnoreCase("[null]")}">
                                            <td>--</td>
                                        </g:if>
                                        <g:else>
                                            <td><g:set var="dc1" value="${fieldValue(bean: result, field: "purpose").replaceAll("\\[", "").replaceAll("\\]", "").split(" ")}"></g:set>
                                            ${dc1[0].capitalize()}
                                            </td>
                                        </g:else>
                                        <g:if test="${fieldValue(bean: result, field: "statusId").equalsIgnoreCase("[null]")}">
                                            <td>--</td>
                                        </g:if>
                                        <g:elseif test="${fieldValue(bean: result, field: "statusId").equalsIgnoreCase("[1]")|| fieldValue(bean: result, field: "statusId").equalsIgnoreCase("1")}">                    
                                            <td><span class="label label-success">Available</span></td>
                                        </g:elseif>
                                        <g:else>
                                            <td>${fieldValue(bean: result, field: "statusId").replaceAll("\\[", "").replaceAll("\\]", "")}</td>
                                        </g:else>
                                    </tr>
                                </g:if>
                            </g:each>
                        </tbody>
    </table>   
  </div>
  <div class="span12">
    <g:link controller="searchFun" action="seeMore" id="" params="[s:s]">See More</g:link>
  </div>*

在索引 .gsp 中它起作用了,我可以看到数据,但是当我单击 seeMore.gsp 中的 seemore 链接时,它会引发错误。我在 seeMore.gsp 中也使用了相同的 gsp 代码。

4

0 回答 0