【问题标题】:Display Image in gsp generated from class在类生成的 gsp 中显示图像
【发布时间】:2013-11-05 12:29:35
【问题描述】:

我在类文件中显示图像路径如下

String val;
val+= "<img src=/"PATH_TO_FILE/" alt=/"sometext/">"

并尝试使用 val 变量中的 jquery 在 div 中的 gsp 视图中加载图像。

图片在指定路径成功找到,但问题是gsp页面没有显示图片。

我不想使用下面给出的以下 Grails 标签加载图像:

img src="${resource(dir: 'images', file: image.name)}" alt="Grails"/>

在 Grails 类中使用普通的 html img 标签在视图页面中加载图像是否有任何限制?

【问题讨论】:

  • 使用 img 标签没有任何限制,但是将 grails 类和 jquery 混合到一个上下文中是什么意思?你想用ajax获取图片路径吗?

标签: javascript jquery html image grails


【解决方案1】:

使用反斜杠而不是正斜杠,例如:

行动:

def test() {
    String val = "<img src=\"http://localhost:8080/formwizard/images/asd.png\" alt=\"sometext\">"
    [val: val]
}

查看:

<script>
    $(document).ready(function () {
        $("#divId").html('${val}');
    });
</script>
<div id="divId"></div>

注意:- 如果您在操作 val 字符串中使用 "( String val = "<img src=\"http://localhost:8080/formwizard/images/asd.png\" alt=\"sometext\">"),则在脚本中使用 '('${val}') 来获取它,如果使用 ' ("&lt;img src='http://localhost:8080/formwizard/images/asd.png' alt='sometext'&gt;") 然后在脚本中使用"${val}"

如果你使用的是 ajax 那么

行动:

def test2() {
    String val = "<img src=\"http://localhost:8080/formwizard/images/asd.png\" alt=\"sometext\">"
    render val
}

查看:

<script>
  function getImg() {
    $.ajax({
      url: "${createLink(controller: 'dashboard', action: 'test2')}",
      success: function (data) {
        $("#divId").html(data);
      }
    });
  }
</script>
<a href="javascript:void(0)" onclick="getImg()">Get Image</a>
<div id="divId"></div>

编辑.......................... ......................

将您的代码更改为:

def grailsLinkGenerator
def test2() {
    def basePath = grailsLinkGenerator.serverBaseURL
    String val = "<td><a href='adddd'><img width=\"50\" height=\"50\" src=" + basePath + "/images/repository/HrCrEmp/PIC_/0004-001.png alt=\"Fawkner Park\"></a></td>";
    render val
}

注意:-如果图像扩展名是 png 并且如果图像扩展名是 jpg 则可以正常工作,然后从图像名称中删除连字符 (-) 符号。

【讨论】:

  • 我试过了,但只显示了 alt 属性的文本。在我的控制器中,我写道: def basePath = System.properties['base.dir']; String val = "" + "" + " "; 并从 ajax 调用操作。
  • 没有成功。它正在生成 localhost:8080/HRMS/static/images/repository/HrCrEmp/PIC_/… alt="Fawkner Park"> 之类的 url,但我的图片在此处不可用。实际上我的图像在我电脑的 D: 驱动器中。这是我的图像位置 D:\Rubel\Projects\W\hr\HRMS\web-app\images\repository\HrCrEmp\PIC_\0004-001.jpg。当我将此网址粘贴到我的地址栏中时,图像会加载到我系统的图像查看器中
  • 图像源正在生成,如localhost:8080/HRMS/images/repository/HrCrEmp/PIC_/0004-001.jpg,但显示资源不可用。是否有任何“放置错误或语法错误?
  • 尝试在浏览器中打开这个http://localhost:8080/HRMS/images/repository/HrCrEmp/PIC_/0004-001.jpg
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 2015-05-29
  • 2011-11-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多