将 java 字符串数组发送到 .gsp 并显示所有元素
Send java String Array to .gsp and show all elements
我在控制器中有一个典型的 java 字符串数组 String[] token = new String[20]
。
我想将这个数组传递给 .gsp 文件,其中 token
中的所有元素都用换行符打印出来。
没过多久,我就认为 <g:each>
应该完全满足需要。然而,在尝试了多种选择之后,到目前为止似乎没有任何效果。
http://grails.org/doc/latest/ref/Tags/each.html
本指南显示了一些示例,但是,其中 none 似乎符合我的需要,因为我需要读取一个数组,而不是显示不同的域变量(我实际上尝试过它们但没有运气)。
Grails iterating in gsp vs. accessing Map elements 这个回答无效
http://grails.1312388.n4.nabble.com/How-to-display-the-contents-of-a-string-Array-in-GSP-td1355405.html 乍一看这似乎非常接近我的需要,但是那也行不通。
我已经花了几个小时尝试所有这些东西的不同组合和变体。每次它要么导致错误,要么没有元素被打印出来。我知道它们在那里,因为如果我专门要求它们(仅针对一个元素),我就能看到结果。
在我的控制器中,我尝试将 token
与 render view:'myFancy.gsp', model:['lsOut':token]
和 return [lsOut:token]
一起传递。 (甚至 return ['lsOut':token]
只是为了确定)
我没主意了。关于接下来要尝试什么或我可以再试什么的任何建议(因为我可能犯了一些错误)?
控制器:
def readContents()
{
String s = new RunSshCommand().execute() {
host = params.ServerAddress
username = params.Username
password = params.Password
command = "ls -m Funk"
}
String[] token = new String[20]
token = s.split(",")
//render view:'readContents.gsp', model:['i':token]
return [lsOut:token]
}
GSP 文件
<ul>
<g:each in="${token}" var="lsOut">
<td>${lsOut.value?.encodeAsHTML()}</td>
</g:each>
</ul>
您的 GSP 文件需要获取模型中名为 lsOut
的列表并迭代所有元素。请注意,使用 <td>
所有元素将出现在单个 table 行中。您必须使用 HTML 分隔符 <li>
才能在 <ul>
列表中显示多行元素:
<ul>
<g:each in="${lsOut}" var="it">
<li>${it.encodeAsHTML()}</li>
</g:each>
</ul>
我在控制器中有一个典型的 java 字符串数组 String[] token = new String[20]
。
我想将这个数组传递给 .gsp 文件,其中 token
中的所有元素都用换行符打印出来。
没过多久,我就认为 <g:each>
应该完全满足需要。然而,在尝试了多种选择之后,到目前为止似乎没有任何效果。
http://grails.org/doc/latest/ref/Tags/each.html 本指南显示了一些示例,但是,其中 none 似乎符合我的需要,因为我需要读取一个数组,而不是显示不同的域变量(我实际上尝试过它们但没有运气)。
Grails iterating in gsp vs. accessing Map elements 这个回答无效
http://grails.1312388.n4.nabble.com/How-to-display-the-contents-of-a-string-Array-in-GSP-td1355405.html 乍一看这似乎非常接近我的需要,但是那也行不通。
我已经花了几个小时尝试所有这些东西的不同组合和变体。每次它要么导致错误,要么没有元素被打印出来。我知道它们在那里,因为如果我专门要求它们(仅针对一个元素),我就能看到结果。
在我的控制器中,我尝试将 token
与 render view:'myFancy.gsp', model:['lsOut':token]
和 return [lsOut:token]
一起传递。 (甚至 return ['lsOut':token]
只是为了确定)
我没主意了。关于接下来要尝试什么或我可以再试什么的任何建议(因为我可能犯了一些错误)?
控制器:
def readContents()
{
String s = new RunSshCommand().execute() {
host = params.ServerAddress
username = params.Username
password = params.Password
command = "ls -m Funk"
}
String[] token = new String[20]
token = s.split(",")
//render view:'readContents.gsp', model:['i':token]
return [lsOut:token]
}
GSP 文件
<ul>
<g:each in="${token}" var="lsOut">
<td>${lsOut.value?.encodeAsHTML()}</td>
</g:each>
</ul>
您的 GSP 文件需要获取模型中名为 lsOut
的列表并迭代所有元素。请注意,使用 <td>
所有元素将出现在单个 table 行中。您必须使用 HTML 分隔符 <li>
才能在 <ul>
列表中显示多行元素:
<ul>
<g:each in="${lsOut}" var="it">
<li>${it.encodeAsHTML()}</li>
</g:each>
</ul>