Невозможно отобразить изображение из файловой системы в Grails - PullRequest
0 голосов
/ 02 ноября 2011

Я новичок в Grails (1.3.7), и я попал в странную ситуацию с отображением изображения из файловой системы.Изображение one.png помещается в каталог web-app / images / fotos . zz.gsp :

<img src="${resource(dir:'images/fotos', file:'one.png')}" alt="Nothing" />

, относящийся к действию void def zz = {} , работает нормально.Но если я намереваюсь отобразить ту же картинку в rawRenderImage.gsp :

  <body>
   <p>
     ${fdir}  <br/>   ${fname}      <!-- OK -->
   </p>
   <g:if test="${fname}">
      <img src="${resource(dir:'fdir',file: 'fname')}"   alt ="Nothing"/>
   </g:if>  
  </body>

, изображение не появляется, несмотря на параметры fdir и fname перейти на страницу.Действие в контроллере:

    def rawRenderImage = {
//    def basePath = servletContext.getRealPath("/")
//      def basePath = grailsAttributes.getApplicationContext().getResource("/").getFile().toString() + "/images/fotos/"  
//      def basePath = grailsAttributes.getApplicationContext().getResource("/").getFile().toString()
//      def fname = params.photoId + ".png"
//      def fname = "/images/fotos/" + params.photoId + ".png"

basePath = "images/fotos"        // or basePath=”images” for /images/one.png
fname=”one.png”

        [fdir:basePath, fname:fname]
   }

Даже прямые назначения basePath = ”images / fotos” и fname = ”one.png” не работают, а также любые комбинации с basePath для получения абсолютного пути.Даже тот случай, когда я помещаю картинку в каталог images , не работает.Я использую netbeans , но он также не работает в режиме консоли.

Помогите, пожалуйста.

1 Ответ

2 голосов
/ 02 ноября 2011

При передаче вашего имени файла и каталога в качестве переменных в модели, не заключайте их в кавычки в атрибуте src вашего тега.Тогда оценка Groovy ${} будет оцениваться как переменные, а не как строки.

<g:if test="${fname}">
    <img src="${resource(dir:fdir,file:fname)}" alt ="Something"/>
</g:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...