Mensagens enviadas por: Tiago Farias
Índice dos Fóruns » Perfil de Tiago Farias » Mensagens enviadas por Tiago Farias
Autor Mensagem
Olá!

Minha app tem uma página inicial (index.jsp) que apenas redireciona para uma página de login por meio de:



Por causa do namespace setado neste momento, no caso o /admin/*, não consigo mudá-lo mais. Por exemplo, no meu struts.xml eu tenho o package:



Isso devia fazer com que, quando a action "UpdateForm" fosse chamada, o package colocasse o /user/ antes, não? Dessa forma ficaria app/user/UpdateForm. Mas o q está acontecendo é que a url fica /admin/UpdateForm. Como se o struts não trocasse o namespace, apenas trocasse o nome da action.
Então gostaria de saber como fazer pra o struts pegar a action correta com o namespace correto.

Alguém sabe?
Ae! Descobri qual é a magia.

Como o magnojg flw, trocar o taglib por <%@ taglib prefix="menu" uri="http://struts-menu.sf.net/tag-el"%> é o primeiro passo.

O segundo passo é apagar o bundle e o locale no xml e setar no web.xml o parâmetro:

<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>*Messages</param-value>
</context-param>

Onde *Messages é o nome do seu arquivo de internacionalização (que fica em WEB-INF/classes) sem o .properties no fim. Tipo, "router-messages" no meu caso.
Isso resolveu.

\o/
Pow... muito obrigado pela ajuda! Fico no aguardo (e tentando aqui)! =]
Tentei com ambos agora e não rolou. É estranho inclusive que essa classe org.apache.struts.action.ActionMessage não parece ser do struts 2 mas do 1. Não sei. Mas não funcionou e agora eu não tenho mais saída. Caramba, como pode ser tão difícil internacionalizar um menu???
Fiquei sem abordagens agora... Alguma sugestão?
Bom, eu tava usando a taglib sem o "-el" no fim. Mas mesmo colocando "-el" no fim não funciona. Continua exibindo no título menuItem a chave da mensagem: "application.header.user". Me diz uma coisa, o bundle deve ser o nome do arquivo de internacionalização sem o ".properties" no final? Ou tem algum segredo de qual nome por no atributo bundle da tag?

Grato!
Você tá explicando muito bem (e obrigado por isso), apenas não vejo aonde isso se relaciona com o meu caso. O struts me força a ter um objeto Locale dentro do User?? Eu coloquei um atributo locale="user.locale" no meu jsp mas deu NullPointer =/. Obviamente, porque o objeto user não tem locale. A questão é: precisa SEMPRE ter? Eu quero usar o mesmo properties de mensagens que o resto do sistema usa. Aí tipo... não bastaria eu acertar aonde o bundle está, para achar o properties e a partir daí fazer o mapeamento chave-valor das mensagens?

Vlw!
Olá magnojg!

Cara, vc tá se referindo ao objeto Locale? O meu usuário não tem um Locale. Acho q não entendi essa parte. Dá pra explicar melhor? =D

Vlw!
Olá pessoal, seguinte:

Fiz um menu utilizando struts-menu integrado com Struts 2, até aí funcionou tudo perfeito e beleza. Mas agora eu quero internacionalizar os nomes nos menus (title).

Esse é o meu menu-config.xml:



E aqui o jsp correspondente ao menu:



Bom, o menu aparece e todos os itens tb. Todos os titles aparecem se escritos diretamente no atributo title, tipo title="Relatórios". Mas eu preciso internacionalizar, daí preciso passar uma key pra o title como no caso do menu 'userMenu' acima. Já tentei usar o atributo bundle na tag <menu:useMenuDisplayer> mas aparece na tela a key mesmo. Alguém sabe como fazer pra o struts-menu reconhecer o title como uma key para o arquivo message.properties?
Bom, resolvi o problema. Vários erros, pra começar:


1 - O xml correto seria



2 - E essa parte deve ficar dentro do meu applicationContext de Actions (struts 1.x). Ou seja, no caso de vc ter um applicationContext.xml dividido, como no meu caso, vc deve usar o component-scan para procurar annotations nos beans especificados pelo base-package.
Ex: Dentro do actionContext.xml eu procuro os controladores (@Service). Nos controladores, como eu injeto Daos, procuro por daos(@Repository) e assim por diante...

Pelo q lembro eh isso... =]
Olá meu povo,

estou tentando mudar a forma de injetar beans num sistema, de xml para annotations do Spring. Consultando alguns tutoriais e até mesmo o fórum do guj, consegui organizar de tal forma q a app sobe e td mais sem erros. Só que na hora de injetar os beans, o Spring Container parece não conseguir. Ao testar, vejo q o objeto a ser inserido(um controlador) está 'null'. Já tentei de várias formas, sem sucesso, de forma que me parece q algum detalhe mais sutil deve estar faltando. Abaixo vão minhas configs e o código. Só lembrando q estou tentando passar para Annotations apenas uma funcionalidade, caso funcione, eu mudo o resto do sistema.









Agora meu arquivo de configuração(applicationContext.xml é dividido em 2 partes, controladorContext.xml e daoContext.xml):



É isso ae, não funciona nem a pau! Qualquer dica do porquê disto, pode falar q eu tô curiosíssimo! =]

Vlw!
Oi Lucas,

tb não sei se entendi bem oq vc queria, mas no caso, pra vc acessar uma lista static em outra classe, vc tem q se referir a ela como NomeClasse.atributo. No seu caso, assim:



É isso q eu entendi?

Ah! Então, esse tipo de loop for eh chamado de "for iterado". A sintaxe



poderia ser lida como: "Para cada elemento 'e' dentro da lista 'listaElementos' ". O ':' apenas faz parte da construção. =]
Então manolo, no caso, pra vc poder chamar um método da sub-classe dessa forma ele deve existir tb na superclasse. Tipo:

Empregado é a superclasse e deve possuir um método getSalario();

Todas as subclasses de Empregado devem possuir esse método tb.

Daí, vc faria um loop for como vc fez, mas só que listando todos os Empregados (ao invés de apenas gerentes).

for(Empregado empregado : empregados) {
double salario = empregado.getSalario();
}

Apesar da classe q chama o método ser do tipo Empregado, o método q eh realmente chamado é o da subclasse q sobrescreveu o método da superclasse.
Pensando bem... isso é interessante:

tuh pode criar outro Filter mapeado com a url da tua página de login. Daí, esse filtro novo seria chamado imediatamente antes do teu filtro de verificar se o usuário tá logado. Quando fosse detectado q a tua página de login está sendo chamada, o filtro novo poderia setar um atributo qualquer no request e chamar o próximo filtro(o que checa se o usuário tá logado). O teu filtro de acesso verificaria se o atributo existe no request e, caso exista, ele simplesmente chama o chain.doFilter(), pulando a execução do filtro de acesso. Deu pra sacar a idéia?

[]s.
Essa é dureza. Não. Não existe match exclusivo pra a tag filter-mapping. Infelizmente. Vc pode incluir urls através de expressões regulares básicas, mas não tem como excluir algumas através do xml. Por outro lado, vc pode evitar algumas das urls via código. Teoricamente, é ruim fazer isso, pq vc meio q contraria o seu web.xml, dizendo q ele faz uma coisa, qd por debaixo dos panos ele faz outra. Mas realmente não sei outra solução pra isso. =/
 
Índice dos Fóruns » Perfil de Tiago Farias » Mensagens enviadas por Tiago Farias
Ir para:   
Powered by JForum 2.1.8 © JForum Team