Patrick Hütter

BurningImage Grails Plugin: Erweiterte TagLib bi:hasNoImage

Jeder der das Plugin burningimage in seinem Grails Projekt benutzt um Bilder/Grafiken in Datenbanken oder im Dateisystem abzulegen wird irgendwann feststellen, dass es in den Views nicht möglich ist, zu prüfen, ob die Domain-Klasse „kein“ Bild hält um dementsprechend bei fehlendem Bild besonderen Inhalt einzublenden. Vor diesem Problem stand ich und habe dementsprechend mit freundlicher Hilfe vom burningimage-Entwickler (burningice) eine spezielle TagLib entwickelt, die mir das Tag bereit stellt.

Funktioniert nicht:

<g:if test="${domainInstance.imageField == null}>Content</g:if>

Lösung:
Man erstellt eine neue TagLib mit

create taglib

und nennt sie am besten „ExtendedBurningImageTagLib“.
Danach kopiert man einfach den folgenden Quelltext in die TagLib

package Packagename

class ExtendedBurningImageTagLib {
 static namespace = 'bi'

  def hasNoImage = { attrs, body ->
  if (bi.hasImage(attrs, body)){
	  return
  }
  out << body()
  }
}

und hat nach einem Neustart der Software in seinen Views das Tag

<bi:hasNoImage bean="${domainInstance}">Content to display when domainInstance has no images.</bi:hasNoImage>

zur Verfügung.

 

Die mobile Version verlassen