Vídeo Aulas: Seam Extras partes 8 e 9
Marcos Sousa | November 1, 2008Foram publicadas no portal Java Magazine a 8ª e a 9ª parte da série de vídeo aulas sobre os extras Seam Framework.
A parte 8, faz a introdução do Seam Remoting. São mostradas as configurações necessárias e a forma de acesso a componentes SEAM. O Seam Remoting é uma forma eficiente acessar componentes SEAM usando AJAX, permitindo ao desenvolvedor resolver problemas que os componentes disponíveis no mercado não atendem. Para utilizá-lo é facil, basta apenas ter o SeamResourceServlet configurado e basta chamar os arquivos javascript ou usar a tag remote para usar os componentes, veja o exemplo:
<script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script> <script type="text/javascript" src="seam/resource/remoting/interface.js?newsHome&usersHome"></script> <!-- Mesmo resultado em relação as 2 linhas anteriores--> <s :remote include="newsHome,usersHome"/>
A parte 9 aborda uma feature interessante, a resolução de EL. Como uma expression language é resolvida durante a rendereização da página, para usar este recurso é preciso usar a função dentro fora da página em um arquivo Javascript. Depois é só chamar a função da seguinte forma:
Seam.Remoting.eval("#{newsHome.relatedNews}", newsCallback);
// callback function
function newsCallback(newsList) {
// read news
var area = document.getElementById("relatedNews");
for (var i = 0; i < newsList.length; i++) {
var news = newsList[i];
var span = document.createElement("span");
span.innerHTML = "<h4><a href='ViewNews.seam?newsId=" + news.getId() + "'>" +
news.getTitle() + "</a>" + news.getDescription();
area.appendChild(span);
}
}
A última vídeo aula da série mostrará chamadas em lote e a utilização de classes que não são componentes SEAM.






Olá Marcos,
Primeiramente parabéns pelo blog, muitas dicas úteis e importantes.
Eu sou iniciante em J2EE e comecei com Jboss+SEAM+Richfaces, mas estou tendo um problema com o layout das minhas telas.
Tenho um formulário , queria que minha label fica se em cima do meu inputext e não do lado.
Já tentei fazer de varias formas mas não consegui.
Tem alguma idéia de como posso solucionar isso?
Abraços e parabéns novamente pelo blog.
André,
Você pode solucionar este problema usando a tag <fieldset></fieldset> sem traumas. Ela é bem simples de ser usada.
Marcos,
A tag ajudou muito, estava procurando isso, mas ainda assim ela agrupa mas os campos estam lado a lado.
fiz um css como alguns lugares fala, mas não deu mto certo não. Poderia postar alguma coisa do tipo ou enviar um exemplo?
abrigado.
André,
Coloque o label e inputs em divs diferentes com o estilo display:block; que deve funcionar. Para mais informações acesse este link: http://www.maujor.com/tutorial/propriedade-css-display.php
Marcos,
Muito obrigado, ajudo muito mesmo cara já resolveu meu problema.
Abraços.
Olá, Marcos. Tudo bom?
Estive recentemente pesquisando sobre como invocar métodos de componentes da minha aplicação via javascript e encontrei este seu post e videos. Porém, creio que a forma de implementação descrita só se aplica até a versão 2.1.0.A1 Do JBoss Seam. Digo isso porque o “pacote org.jboss.seam.annotations.remoting” sumiu a partir da versão 2.1.0.BETA1, impossibilitando de utilizar a anotação @WebRemote, por exemplo, e também dá erro 404 no import dos arquivos “remote.js” e “interface.js”.
Estou utilizando JBoss Seam na sua versão 2.1.2 e me parece que não há referências recentes na web sobre como fazer isto que você propõe neste post. E isto me parece até uma “lacuna” que pode dar um belo plus no ranking do blog.
Tens pretensão de escrever algo sobre isto em breve? Teria alguma referência mais atual de como invocar métodos dos componentes da aplicação via javascript?
Obrigado pela atenção e abraço pro colega.
@Alceu,
Tenho um projeto em 2.1 e usei normalmente. Talvez eles mudaram o local da anotação e não percebi, mas ela continua lá.
Quanto aos arquivos javascript, sugiro que use a tag s:remote, assim se o pessoal mudar a localização destes arquivos você não sofrerá com atualizações de versão.
Oi, Marcos.
Mil perdões, esqueci de adicionar o jboss-seam-remoting.jar.
Mais uma vez obrigado.
Olá Marcos
Gostei do seu artigo e estou tento problemas para utlizar JavaScript com Seam. Gostaria de saber onde configuro o SeamResourceServlet na minha aplicação, se no faces-config ou components.xml. Aguardo o teu feedback para poder resolver esse problema na minha aplicação.
Utlizar a tecla enter pelo inputText e limpar o mesmo inputText depois de submeter o conteúdo do mesmo
Oi Marcelo,
O SeamResourceServlet é configurado no web.xml (http://docs.jboss.org/seam/latest/reference/en-US/html/configuration.html#d0e24082). Para implementar esta funcionalidade você realmente precisá de um JS
Olá Marcos.
Eu construi um chat utilizando o Seam e gostaria de implementar um JavaScript para que o usuário ao digitar uma mensagem pelo InputText tecla-se Enter e limpa-se esse componenente mantendo o foco no mesm. Vendo a vídeo aula 8 e 9, me surgiu uma dúvida. Eu teria que colocar em as tags em meu template.xhtml, que é usado praticamente em todos os outros arquivos xhtml que tenho aqui e assim implementar uma function JS. E como poderia fazer isso.
Desde já te agradeço