【问题标题】:Send java String Array to .gsp and show all elements将 java String Array 发送到 .gsp 并显示所有元素
【发布时间】:2015-01-09 23:28:52
【问题描述】:

我在控制器中有一个典型的 java 字符串数组 String[] token = new String[20]。 我想将此数组传递给 .gsp 文件,其中token 中的所有元素都以换行符打印出来。 不久之后,我认为<g:each> 应该完全满足需要。然而,在尝试了多种选择之后,到目前为止似乎没有任何效果。

http://grails.org/doc/latest/ref/Tags/each.html 本指南显示了一些示例,但是,它们似乎都不适合我的需要,因为我需要读取一个数组,而不是显示不同的域变量(我实际上没有运气尝试过)。

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 中准确添加您尝试过的最新内容?
  • 好的,添加了最新的代码。正如你所看到的,我已经很绝望了,基本上什么都在尝试。我不确定这有多大帮助,因为理想情况下我应该展示我尝试过的所有东西,但我不能再简单地记住我所有的尝试了。在有人说我不应该解析 ls 输出之前 - 是的,我知道,但是服务器不支持 SSHFS(至少不能指望它),所以我也愿意就此提出建议。跨度>

标签: grails gsp


【解决方案1】:

您的 GSP 文件需要在模型中获取名为 lsOut 的列表并迭代所有元素。请注意,使用&lt;td&gt;,所有元素都将出现在单个表格行中。您必须使用 HTML 分隔符 &lt;li&gt; 才能在 &lt;ul&gt; 列表中的多行上显示元素:

<ul>
    <g:each in="${lsOut}" var="it">
        <li>${it.encodeAsHTML()}</li>
    </g:each>
</ul>

【讨论】:

  • &lt;td&gt; 基本上只是之前尝试的剩余部分。与&lt;ul&gt; 相同,因为结果不一定必须在该列表中。已经在&lt;ul&gt; 中使用&lt;li&gt; 和不使用&lt;ui&gt; 通过将${it.encodeAsHTML()} 放在&lt;div&gt; 标签之间进行了测试,两次都运行良好。非常感谢!
猜你喜欢
  • 2020-12-07
  • 2020-06-28
  • 2016-11-11
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多