我已经将数组列表值从我的控制器传递到一个 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 代码。