4

我一直在尝试将图标添加到我的保存、删除等按钮。我有大约五个按钮使用<g:actionSubmit>标签来调用控制器中的动作来执行相应的功能。我的问题是 FontAwesome 和 bootstrap 的字形图标需要<i class="icon-***">像这样使用标签:

<a href="http://google.com">
    <i class="icon-ok"></i> Google
</a>

在 grails 中,初始标记之间的这种标记格式是不可能的(至少使用actionSubmit)。value 属性是显示的字符串。有什么解决方法吗?请记住,我仍然需要将按钮操作映射回控制器,这就是为什么我在使用<button>像引导程序推荐的直接标签时遇到问题的原因。

更新:

使用当前的 2 个答案时我遇到了很多问题。它们都用于添加图标,但我遇到了一些麻烦,我不得不修改很多东西来修复。我考虑了另一种解决方案,但在实施它时遇到了一些问题。我想使用 taglib 的基础作为下面的 actionSubmit 标记库来编写我自己的标记库:

def actionSubmit = {attrs ->
    attrs.tagName = "actionSubmit"
    if (!attrs.value) {
        throwTagError("Tag [$attrs.tagName] is missing required attribute [value]")
    }

    // add action and value
    def value = attrs.remove('value')
    def action = attrs.action ? attrs.remove('action') : value

    out << "<input type=\"submit\" name=\"_action_${action}\" value=\"${value}\" "

    // process remaining attributes
    outputAttributes(attrs)

    // close tag
    out << '/>'
}

我需要做的唯一改变是让它能够接受

<i class="icon-ok"></i>

之间的标记:

<g:actionSubmit ...> </g:actionSubmit>

有没有人有建议或对此实施?


将文件读入 String 并在 Expect Script 中循环

我想做的是:

  1. 创建一个.exp文件,该*.txt文件将从同一目录中读取文件并将文本文件中的所有内容解析为期望脚本中的字符串变量。
  2. 循环字符串,其中包含一系列主机名,并执行一系列命令,直到字符串被枚举。

所以脚本的作用是从同一目录下的文件中读取一系列主机名txt,然后将它们读入字符串,该.exp文件将自动登录到每个主机名并执行一系列命令。

我编写了以下代码,但它不起作用:

#!/usr/bin/expect

set timeout 20
set user test
set password test

set fp [open ./*.txt r]
set scp [read -nonewline $fp]
close $fp

spawn ssh $user@$host

expect "password"
send "$password\r"

expect "host1"
send "$scp\r"

expect "host1"
send "exit\r"

任何帮助是极大的赞赏....

4

2 回答 2

4

不要使用 actionSubmit,只需使用 a<button>并提供链接/操作属性,如下所示:

<button type="submit" class="btn">
  <i class="..."></i> Update
</button>

这是一个更详细的例子

<button type="submit" class="btn btn-danger" name="_action_delete" value="Delete">
  <i class="..."></i> ${message(code: 'default.button.delete.label', default: 'Delete')}   
</button>

注意:actionSubmit 传递以下输入名称/值用于更新、保存和删除

name="_action_update" //update
name="_action_update" //save
name="_action_delete" //delete

所以如果你的应用程序依赖于它们,你只需要做同样的事情

于 2013-07-15T20:45:22.437 回答
2

尝试将类名传递给 remoteLink,它会创建一个使用 Ajax 调用远程函数的链接,您可以将 fontAwesome 类添加到其中。

<g:remoteLink  class="btn icon-ok" action="index"  >
    click (without i tag)
</g:remoteLink>

或者

<g:remoteLink  action="index" >
       <i class="btn icon-ok">click (with i tag) </i>
</g:remoteLink>

两种方法都应该有效。在此处输入图像描述

于 2013-07-15T20:19:23.273 回答