Imagem
18/02/2010 00:00
0
olá pessoal...

estou iniciando em grails e gostaria de fazer o seguinte:
gravar uma imagem no banco de dados e, nas telas de show e list, mostrar a imagem no tamanho pequeno.

eu criei uma classe com um atributo chamado img do tipo byte[].

a visualização estou fazendo pelo scaffold e na tela de criação, está tudo certo, ele coloca o botão para selecionar a imagem e até grava.

mas na tela de show, quando vou mostrar o item, a imagem aparece com um monte de números.

[71, 73, 70, 56, 57, 97, 98, 0, 98, 0, -9, 0, 0, 23, 17, 15, 23, 18, 17, 26, 21, 18, 28, 25, 22, 30, 29, 25, 32, 23, 21, 35, 25, 21, 41, 29, 23, 35, 30, 26, 42, 30, 26, 50, 31, 24, 31, 32, 27, 34, 35, 29, 43, 35, 29, 51, 35, 29, 59, 39, 31........]

como fazer para mostrar a imagem que eu gravei no banco?

tem alguma tag html pra fazer isso ou algum plugin?

a tag que gerou automaticamente foi:
<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; imagemInstance, field&#58; &quot;img&quot;)}</td>


tentei a tag <img src=&quot;&quot;> mas não funcionou... não manjo muito de html =]

agradeço qquer ajuda!

Obs.: grails-1.2.1, banco: mysql

vlw
Tags: Grails


0
Oi Rodrigo,

no caso, para expor imagens o ideal consiste em você criar uma action no controller relacionado que redirecione os bytes para o stream de saída, como por exemplo no código abaixo:


def imagem= {
def pessoa = Something.get( params.id )
byte[] avatar = something.avatar
response.outputStream << avatar
}


E, no seu código html, fazer com que o atributo src da tag img aponte para o resultado desta action, como por exemplo em:


<img src=&quot;${createLink(controller&#58;'seu_controller', action&#58;'imagem', id&#58; usuario.id)}&quot;/>


0
obrigado! funcionou do jeito que vc passou!

só mais uma dúvida....

se eu tiver mais que uma imagem na minha classe, por exemplo, 4 imagens
eu preciso definir quatro actions no controler para que cada um pegue a imagem que eu quero?

por exemplo:
na classe Pessoa tenho os atributos img1, img2, img3 e img4.

vou precisar definir 4 actions?

tipo:
def imagem1= {
def pessoa = Pessoa.get( params.id )
byte[] avatar = pessoa.img1
response.outputStream << avatar
}

def imagem2= {
def pessoa = Pessoa.get( params.id )
byte[] avatar = pessoa.img2
response.outputStream << avatar
}

def imagem3= {
def pessoa = Pessoa.get( params.id )
byte[] avatar = pessoa.img3
response.outputStream << avatar
}

def imagem4= {
def pessoa = Pessoa.get( params.id )
byte[] avatar = pessoa.img4
response.outputStream << avatar
}

??

não tem como já informar a imagem que quero mostrar no createLink?

tipo:
<img src=&quot;${createLink(controller:'seu_controller', action:'imagem', id: usuario.img1)}&quot;/>

tentei assim e coloquei na action que o params.id era byte[] mas não deu certo...
19/02/2010 00:00


0
Não! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->

Você pode melhorar o seu controlador para que ele mesmo saiba qual imagem buscar. Por exemplo: vamos supor que a sua classe seja tosquinha como a abaixo:


class Tabajara {
// tabajara pra cima
byte[] imagem1
byte[] imagem2
// tabajara pra baixo
}


O seu controlador poderia receber mais de um parâmetro. o identificador da sua classe de domínio no BD e também qual imagem quer buscar.
Então, se você escreveria a sua tag img tal como abaixo:


<img src=&quot;${createLink(controller&#58;'tabajara', action&#58;'imagem', params&#58;[id&#58;'idQuente', imagem&#58;'imagem1'])}&quot;/>


E, no seu controlador, existiria uma action como esta:

def imagem = {
def taba = Tabajara.get(params.id)
resopnse.outputStream << taba.&quot;${params.imagem}&quot;
}


No caso, estou usando o recurso de invocação dinâmica de métodos que a própria linguagem Groovy já te oferece. Escrevi sobre isto neste link: ( <!-- m --><a class="postlink" href="http://www.itexto.net/devkico/?p=535">http://www.itexto.net/devkico/?p=535</a><!-- m --> ).

E, lembre-se: esta é uma solução tosca ao extremo para o seu problema. Mas a geral e mais elegante é a seguinte:
* No seu controlador, espere dois parâmetros: um que identifique qual a instância com a qual deseja trabalhar e outro que identifique qual imagem buscar.
* No controlador, verifique se tanto a imagem a ser buscada quanto o registro na base de dados existam. Existindo, retorne este array de bytes. Não existindo, dispare uma excessão ou exponha uma imagem default de erro.

Qualquer coisa, to ai!


0
valeu cara!

vou dar uma olhada no seu artigo!
19/02/2010 00:00


0
Eu também tive o problema de a imagem aparecer com números e consegui resolver esse problema mas agora a imagem aparece com um símbolo que eu penso que significa link quebrado:


Não consigo perceber porque tenho este problema. O meu código está assim:

Na classe Funcionario:



class Funcionario{

//(...)

byte[] foto

static constraints{
//(..)
foto(maxSize&#58;10000000)
}


Criei o ImageController:


class ImageController {

def index = {redirect(action&#58; &quot;show&quot;, params&#58; params) }

def defaultAction =&quot;show&quot;

def show= {
//loads the class with a name and assigns obj a new instance created of the same object
def obj = Class.forName(&quot;${params.classname}&quot;,true,Thread.currentThread().contextClassLoader).newInstance();
def object = obj.get( params.id )
response.setContentType(params.mime)
byte[] image = object.&quot;${params.fieldName}&quot;

response.outputStream << image
}

}



No ficheiro show.gsp da pasta view/funcionario coloquei o seguinte código:


<img src=&quot;${createLink(controller&#58;'imageController', id&#58;funcionarioInstance.id, params&#58;[fieldName&#58;&quot;foto&quot;, classname&#58;'Funcionario',mime&#58;'image/jpeg'])}&quot;/>


Alguém me sabe dizer o que está mal com esse código?
04/09/2010 00:00


0
Eu utilizo o código abaixo, baseado neste link:
<!-- m --><a class="postlink" href="http://fbflex.wordpress.com/2008/04/22/image-uploading-in-grails-with-5-lines-of-code/">http://fbflex.wordpress.com/2008/04/22/ ... s-of-code/</a><!-- m -->

Talvez lhe ajude a corrigir o código.

SomethingController

def image= {
def something = Something.get( params.id )
byte[] image = something.image
response.outputStream << image
}


show.gsp

<img src=&quot;${createLink(controller:'something', action:'image', id: somethingInstance.id)}&quot; width=&quot;100px&quot; height=&quot;100&quot;/>
${fieldValue(bean: somethingInstance, field: &quot;image&quot;)}
12/09/2010 00:00


0
Muito obrigada,
resultou. Agora consigo ver a imagem. Mas o problema é que eu tenho mais coisas no show.gsp. O ficheiro tem o seguinte código:


<%@ page import=&quot;ipss.Funcionario&quot; %>
<html>
<head>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; />
<meta name=&quot;layout&quot; content=&quot;main&quot; />
<g&#58;set var=&quot;entityName&quot; value=&quot;${message(code&#58; 'funcionario.label', default&#58; 'Funcionario')}&quot; />
<title><g&#58;message code=&quot;default.show.label&quot; args=&quot;[entityName]&quot; /></title>
</head>
<body>
<div class=&quot;nav&quot;>
<span class=&quot;menuButton&quot;><a class=&quot;home&quot; href=&quot;${createLink(uri&#58; '/')}&quot;><g&#58;message code=&quot;default.home.label&quot;/></a></span>
<span class=&quot;menuButton&quot;><g&#58;link class=&quot;list&quot; action=&quot;list&quot;><g&#58;message code=&quot;default.list.label&quot; args=&quot;[entityName]&quot; /></g&#58;link></span>
<span class=&quot;menuButton&quot;><g&#58;link class=&quot;create&quot; action=&quot;create&quot;><g&#58;message code=&quot;default.new.label&quot; args=&quot;[entityName]&quot; /></g&#58;link></span>
</div>
<div class=&quot;body&quot;>
<h1><g&#58;message code=&quot;default.show.label&quot; args=&quot;[entityName]&quot; /></h1>
<g&#58;if test=&quot;${flash.message}&quot;>
<div class=&quot;message&quot;>${flash.message}</div>
</g&#58;if>
<div class=&quot;dialog&quot;>
<table>
<tbody>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.id.label&quot; default=&quot;Id&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;id&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.pessoa.label&quot; default=&quot;Pessoa&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;><g&#58;link controller=&quot;pessoa&quot; action=&quot;show&quot; id=&quot;${funcionarioInstance?.pessoa?.id}&quot;>${funcionarioInstance?.pessoa?.encodeAsHTML()}</g&#58;link></td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.telefone.label&quot; default=&quot;Telefone&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;telefone&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.dataDeAdmissao.label&quot; default=&quot;Data De Admissao&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;dataDeAdmissao&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.dataDeNascimento.label&quot; default=&quot;Data De Nascimento&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;dataDeNascimento&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.estadoCivil.label&quot; default=&quot;Estado Civil&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;estadoCivil&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.BI.label&quot; default=&quot;BI&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;BI&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.NSS.label&quot; default=&quot;NSS&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;NSS&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.categoriaProfissional.label&quot; default=&quot;Categoria Profissional&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;categoriaProfissional&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.funcao.label&quot; default=&quot;Funcao&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;><g&#58;link controller=&quot;funcao&quot; action=&quot;show&quot; id=&quot;${funcionarioInstance?.funcao?.id}&quot;>${funcionarioInstance?.funcao?.encodeAsHTML()}</g&#58;link></td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.telemovel.label&quot; default=&quot;Telemovel&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;telemovel&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.cartaDeConducao.label&quot; default=&quot;Carta De Conducao&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;><g&#58;formatBoolean boolean=&quot;${funcionarioInstance?.cartaDeConducao}&quot; /></td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.trabalhouNoutrasInstituicoes.label&quot; default=&quot;Trabalhou Noutras Instituicoes&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;><g&#58;formatBoolean boolean=&quot;${funcionarioInstance?.trabalhouNoutrasInstituicoes}&quot; /></td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.descricaoDosSitiosOndeTrabalhou.label&quot; default=&quot;Descricao Dos Sitios Onde Trabalhou&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;descricaoDosSitiosOndeTrabalhou&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.pessoaAContactarEmEmergencia.label&quot; default=&quot;Pessoa AC ontactar Em Emergencia&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;pessoaAContactarEmEmergencia&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.telefoneDaPessoaAContactar.label&quot; default=&quot;Telefone Da Pessoa AC ontactar&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;telefoneDaPessoaAContactar&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.parentescoDaPessoaAContactar.label&quot; default=&quot;Parentesco Da Pessoa AC ontactar&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;parentescoDaPessoaAContactar&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.foto.label&quot; default=&quot;Foto&quot; /></td>

<td><img src=&quot;${createLink(controller&#58;'funcionarioController', action&#58;'show' id&#58;funcionarioInstance.id, params&#58;[fieldName&#58;&quot;funcionarioInstance.foto&quot;, classname&#58;'Funcionario',mime&#58;'image/jpeg'])}&quot;/></td>
</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.saiuDaInstituicao.label&quot; default=&quot;Saiu Da Instituicao&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;><g&#58;formatBoolean boolean=&quot;${funcionarioInstance?.saiuDaInstituicao}&quot; /></td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.dataDeSaidaDaInstituicao.label&quot; default=&quot;Data De Saida Da Instituicao&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;dataDeSaidaDaInstituicao&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.razaoPorqueSaiu.label&quot; default=&quot;Razao Porque Saiu&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;razaoPorqueSaiu&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.accaoDeFormacaos.label&quot; default=&quot;Accao De Formacaos&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.accaoDeFormacaos}&quot; var=&quot;a&quot;>
<li><g&#58;link controller=&quot;accaoDeFormacao&quot; action=&quot;show&quot; id=&quot;${a.id}&quot;>${a?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.baixaEAusencias.label&quot; default=&quot;Baixa EA usencias&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.baixaEAusencias}&quot; var=&quot;b&quot;>
<li><g&#58;link controller=&quot;baixaEAusencia&quot; action=&quot;show&quot; id=&quot;${b.id}&quot;>${b?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.feriasFuncionarios.label&quot; default=&quot;Ferias Funcionarios&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.feriasFuncionarios}&quot; var=&quot;f&quot;>
<li><g&#58;link controller=&quot;feriasFuncionario&quot; action=&quot;show&quot; id=&quot;${f.id}&quot;>${f?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.filhosFuncionarios.label&quot; default=&quot;Filhos Funcionarios&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.filhosFuncionarios}&quot; var=&quot;f&quot;>
<li><g&#58;link controller=&quot;filhosFuncionario&quot; action=&quot;show&quot; id=&quot;${f.id}&quot;>${f?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.problemaDeSaude.label&quot; default=&quot;Problema De Saude&quot; /></td>

<td valign=&quot;top&quot; class=&quot;value&quot;>${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;problemaDeSaude&quot;)}</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.promocaos.label&quot; default=&quot;Promocaos&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.promocaos}&quot; var=&quot;p&quot;>
<li><g&#58;link controller=&quot;promocao&quot; action=&quot;show&quot; id=&quot;${p.id}&quot;>${p?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.salarioFuncionarios.label&quot; default=&quot;Salario Funcionarios&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.salarioFuncionarios}&quot; var=&quot;s&quot;>
<li><g&#58;link controller=&quot;salarioFuncionario&quot; action=&quot;show&quot; id=&quot;${s.id}&quot;>${s?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;><g&#58;message code=&quot;funcionario.sancoess.label&quot; default=&quot;Sancoess&quot; /></td>

<td valign=&quot;top&quot; style=&quot;text-align&#58; left;&quot; class=&quot;value&quot;>
<ul>
<g&#58;each in=&quot;${funcionarioInstance.sancoess}&quot; var=&quot;s&quot;>
<li><g&#58;link controller=&quot;sancoes&quot; action=&quot;show&quot; id=&quot;${s.id}&quot;>${s?.encodeAsHTML()}</g&#58;link></li>
</g&#58;each>
</ul>
</td>

</tr>

</tbody>
</table>
</div>
<div class=&quot;buttons&quot;>
<g&#58;form>
<g&#58;hiddenField name=&quot;id&quot; value=&quot;${funcionarioInstance?.id}&quot; />
<span class=&quot;button&quot;><g&#58;actionSubmit class=&quot;edit&quot; action=&quot;edit&quot; value=&quot;${message(code&#58; 'default.button.edit.label', default&#58; 'Edit')}&quot; /></span>
<span class=&quot;button&quot;><g&#58;actionSubmit class=&quot;delete&quot; action=&quot;delete&quot; value=&quot;${message(code&#58; 'default.button.delete.label', default&#58; 'Delete')}&quot; onclick=&quot;return confirm('${message(code&#58; 'default.button.delete.confirm.message', default&#58; 'Are you sure?')}');&quot; /></span>
</g&#58;form>
</div>
</div>
</body>
</html>



Mas eu agora só consigo ver a imagem. Como faço para visualizar os outros elementos?
16/09/2010 00:00


0
Agora resolvi o problema de outra maneira. Criei a action :


def image= {
def funcionario = Funcionario.get( params.id )
byte[] image = funcionario.foto
response.outputStream << image
}


que está no funcionarioController. No ficheiro show.gsp tenho entre outras coisas:


<!--outros fields-->

<td>
<img src=&quot;${createLink(controller&#58;'funcionario', action&#58;'image', id&#58;funcionarioInstance.id )}&quot; width=&quot;100px&quot; height=&quot;100&quot; />
${fieldValue(bean&#58; funcionarioInstance, field&#58; &quot;foto&quot;)}

</td>
<!--outros fields-->


Mas agora aparece-me a imagem e os números ao lado. Como faço para fazer desaparecer os números?
16/09/2010 00:00


0
Retire o:
${fieldValue(bean: funcionarioInstance, field: &quot;foto&quot;)}
25/09/2010 00:00


0
Funcionou, obrigada!
29/09/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto