Intercionalizar Nome das Colunas da DisplayTag

20 respostas
M

Pessoal, tentei fazer assim:

<display:column property="name"	title="<fmt:message key="lbl_perfil"/>" sortable="true" headerClass="sortable" style="width: 90%;"/>

e dá o seguinte erro:

exception

javax.servlet.ServletException: /profile/busca.ok.jsp(18,73) equal symbol expected
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:87)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Como fazer pra intercionalizar os títulos das colunas da displaytag ??

Valew.

20 Respostas

felipeguerra
title="&lt;fmt:message key="
[color=red]""[/color]
/&gt;"

Você usou aspas duplas mesmo?

Se sim, vai dar pau, né? Ou não?

M

felipeguerra:
title="&lt;fmt:message key="[color=red]""[/color]/&gt;"

Você usou aspas duplas mesmo?

Se sim, vai dar pau, né? Ou não?

Se eu deixar sem aspas ou com aspas simples, não consegue ler o conteúdo da key !!! Assim é exibido um valor em branco.

furutani

Olá

E se usar ’ (aspas simples, tbem conhecido como apóstrofo)?

furutani

Olá

Aqui a gente usa assim

<display-el:column
property="mesReferencia" 
titleKey="chave.label.mes" 
class="textoGeral center" 
headerClass="textoTituloTabela fundoTituloTabela"/>
v1c70r_f

furutani:
Olá

Aqui a gente usa assim

<display-el:column property="mesReferencia" titleKey="chave.label.mes" class="textoGeral center" headerClass="textoTituloTabela fundoTituloTabela"/>

Também estou acostumado a usar do mesmo jeito e funciona blzinha.

rodrigo_corinthians

Apenas esclarecendo os posts dos 2 amigos acima para internacionalização use o atributo titleKey e configure o displaytag.properties setando o framework mvc que utiliza.

Para Struts
locale.resolver=org.displaytag.localization.I18nStrutsAdapter
locale.provider=org.displaytag.localization.I18nStrutsAdapter

Para Struts 2 use I18nWebworkAdapter

M

Ae galera, usando o TitleKey resolveu o problema !!!

Agora, tenho uma outra dúvida sobre intercionalização. Como fazer com a expressão:

${grupo.ativo == 1 ? "Sim" : "Não"}

Como intercionalizar o SIM e o NÃO da expressão ???

Obrigado a todos.

rodrigo_corinthians

Cara ao invés de imprimir o texto hardcode cria 2 key’s no properties com os valores.

M

Como assim ??

rodrigo_corinthians
Arquivo .properties
label.yes=Sim
label.no=Não

// No Jsp...
<c:set var="label" value="label.no" />
<c:if test="${grupo.ativo == 1}">
<c:set var="label" value="label.yes" />
</c:if>

<display-el:column titleKey="${label}" />
Entendeu agora?
M
rodrigo_corinthians:
Arquivo .properties
label.yes=Sim
label.no=Não

// No Jsp...
<c:set var="label" value="label.no" />
<c:if test="${grupo.ativo == 1}">
<c:set var="label" value="label.yes" />
</c:if>

<display-el:column titleKey="${label}" />
Entendeu agora?

Sim, mas não funcionou... ele imprime na tela "label.no" ou "label.yes" ao invés de SIM e NÃO !!!

Veja, tenho até uma outra expressão mais interessante:
${passo.operacao == "C" ? "Cadastrar" : passo.operacao == "V" ? "Vistar" : "Aprovar" }

Será não tem como intercionalizar isso ??

Valew.

A

Cara e como voces internacionalizão as menssagens exibidas na paginação??? que são alteradas no displaytags.properties

M

Você cria um displaytags.properties para cada idioma: displaytags_idioma.properties

A

crio ondi??? e quem que vai charmar isso??? ele chama automatico???

M

Eu crio na raiz do src !!! E ele reconhece automaticamente !!!

J

rodrigo_corinthians:
Apenas esclarecendo os posts dos 2 amigos acima para internacionalização use o atributo titleKey e configure o displaytag.properties setando o framework mvc que utiliza.

Para Struts
locale.resolver=org.displaytag.localization.I18nStrutsAdapter
locale.provider=org.displaytag.localization.I18nStrutsAdapter

Para Struts 2 use I18nWebworkAdapter

Estou de momento a usar struts2 quando uso o outro adapter como dizes em cima “I18nWebworkAdapter” recebo isto:
java.lang.NoClassDefFoundError: com/opensymphony/xwork/ActionContext

Porque o struts 2 tem a classe agora neste caminho com/opensymphony/xwork2/ActionContext.

Alguma solução para o problema?

P

Pessoal, to com o seguinte problema:

Uso minhas displytags com internacionalização. Utilizo para internacionalizar o título, titleKey.

porém, para configurar as mensagens tipo quando a lista estiver vazia, ou de paginação, não consigo internacionalizar.

Eu sei que bastaria ter o displayTag_en.properties, mas eu utilizo várias displayTags, e cada uma tem um texto, então configuro da seguinte maneira:

&lt;display:setProperty name="paging.banner.items_name" value='casas'/&gt;
	&lt;display:setProperty name="paging.banner.item_name" value='casa'/&gt;

tentei

&lt;display:setProperty name="paging.banner.items_name" value='&lt;fmt:message key="casas"/&gt;'/&gt;
		&lt;display:setProperty name="paging.banner.item_name" value='&lt;fmt:message key="casa"/&gt;'/&gt;

mas ai não imprime nada.

Alguém ja passou por algo parecido.

Obrigado.

F

Tenta isso:

<display:setProperty name="paging.banner.items_name">
<fmt:message key="casas"/>
</display:setProperty>

posta o resultado plz

F

Galera não estou conseguindo usar com o struts2…
Uma M!

Só rolando uma adaptação, só que escreve pacas:

<c:set var="label"><s:text name="label.titulo" /></c:set>
	<display:table name="livros" export="true" id="row" requestURI="livrosGetAll.action">
		<display:column property="titulo" sortable="true" href="setUpAddUpd.action" paramId="livro.id" paramProperty="id" />
		<display:column property="autor.nome" sortable="true" title="${label}"/>
		<display:column title="Action" value="del" href="setUpAddUpd.action" paramId="livro.id" paramProperty="id" />
		<display:column title="t">
			<s:url id="editUrl" action="setUpAddUpd">
				<s:param name="livro.id" value="${row.id}"/>
			</s:url>
			<s:a href="%{editUrl}">Edit</s:a>
			<s:url id="exemplaresUrl" action="exemplaresList">
				<s:param name="livro.id" value="${row.id}"/>
			</s:url>
			<s:a href="%{exemplaresUrl}">Exemplares</s:a>
		</display:column>
	</display:table>
Mordor

Estou tentando usar com o Struts2 mas não consigo recebo este erro:

SEVERE: Servlet.service() for servlet default threw exception
java.lang.NullPointerException
        at org.displaytag.localization.I18nStrutsAdapter.getResource(I18nStrutsAdapter.java:87)
        at org.displaytag.tags.ColumnTag.addHeaderToTable(ColumnTag.java:684)
        at org.displaytag.tags.ColumnTag.doEndTag(ColumnTag.java:622)
        at org.apache.jsp.jsp.cadastro.busca.grupo_jsp._jspx_meth_display_005fcolumn_005f0(grupo_jsp.java:444)
        at org.apache.jsp.jsp.cadastro.busca.grupo_jsp._jspService(grupo_jsp.java:163)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
        at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
        at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
        at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)

No displaytag.proert coloquei estas linhas:

locale.resolver=org.displaytag.localization.I18nStrutsAdapter
locale.provider=org.displaytag.localization.I18nStrutsAdapter

no jsp ficou:

<display:column titleKey="grupo.id"        property="id"        sortable="true"/>

Alguem saberia oque fazer?

Criado 31 de agosto de 2007
Ultima resposta 5 de jul. de 2008
Respostas 20
Participantes 10