4. Liferay JSP Portlets

12.705 visualizações

Publicada em

JSP Portlets é a forma mais simples de se criar portlets no Liferay Portal. Estes slides, parte do curso de Liferay ministrado pela SEA Tecnologia, ilustram sua criação e detalha algumas de suas estruturas internas.

Publicada em: Tecnologia
3 comentários
22 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
12.705
No SlideShare
0
A partir de incorporações
0
Número de incorporações
994
Ações
Compartilhamentos
0
Downloads
1
Comentários
3
Gostaram
22
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

4. Liferay JSP Portlets

  1. 1. customizando o JSP Portlets by http://www.flickr.com/photos/dejay181/460664432/in/set-72157594529615566/ 1 Monday, November 16, 2009
  2. 2. 2 Monday, November 16, 2009
  3. 3. O Liferay possui diversos níveis de customização Customização Liferay Extension Código Plugins Environment Fonte Portlets Temas Layouts 3 Monday, November 16, 2009
  4. 4. Portlets revisão Monday, November 16, 2009
  5. 5. Criação do portlet /liferay/liferay-plugins-sdk-5.2.3/portlets $ ./create.sh hello-liferay "Hello Liferay" Buildfile: build.xml create: [unzip] Expanding: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/ portlets/portlet.zip into /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld [copy] Copying 6 files to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/tld BUILD SUCCESSFUL Total time: 6 seconds 5 Monday, November 16, 2009
  6. 6. /liferay/liferay-plugins-sdk-5.2.3/portlets/hello-liferay-portlet $ ant deploy Buildfile: build.xml compile: merge: Deploy do [javac] Compiling 1 source file to /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins- sdk-5.2.3/portlets/hello-liferay-portlet/docroot/WEB-INF/classes portlet merge: war: [mkdir] Created dir: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist clean-portal-dependencies: [zip] Building zip: /Volumes/Data/Documents/sea/edu/liferay/apps/liferay-plugins-sdk-5.2.3/dist/ hello-liferay-portlet-5.2.3.1.war deploy: [copy] Copying 1 file to /liferay/liferay-portal-5.2.3/deploy BUILD SUCCESSFUL Total time: 24 seconds 6 Monday, November 16, 2009
  7. 7. Utilização do portlet 7 Monday, November 16, 2009
  8. 8. Importação do projeto do portlet 8 Monday, November 16, 2009
  9. 9. um pacote WAR de portlets contém... my-portlet.war Classes + Recursos + Descritor 9 Monday, November 16, 2009
  10. 10. Descritores podem ser... Padrões web.xml portlet.xml my-portlet.war Proprietários liferay-portlet.xml liferay-display.xml 10 Monday, November 16, 2009
  11. 11. Portlets têm modos definem a função do portlet no instante 11 Monday, November 16, 2009
  12. 12. Portlets têm estados definem o tamanho da tela que estão ocupando 12 Monday, November 16, 2009
  13. 13. Portlet API 13 Monday, November 16, 2009
  14. 14. O mais comum, entretanto, é o uso da classe GenericPortlet, que ‘substitui’ o método render por outros 3 métódos doView, doEdit e doHelp 14 Monday, November 16, 2009
  15. 15. O mais comum, entretanto, é o uso da classe GenericPortlet, que ‘substitui’ o método render por outros 3 métódos doView, doEdit e doHelp Invocado para renderização do portlet no modo View 14 Monday, November 16, 2009
  16. 16. O mais comum, entretanto, é o uso da classe GenericPortlet, que ‘substitui’ o método render por outros 3 métódos doView, doEdit e doHelp Invocado para renderização do portlet no modo Edit 14 Monday, November 16, 2009
  17. 17. O mais comum, entretanto, é o uso da classe GenericPortlet, que ‘substitui’ o método render por outros 3 métódos doView, doEdit e doHelp Invocado para renderização do portlet no modo Help 14 Monday, November 16, 2009
  18. 18. JSP Portlets a forma de portlet mais simples Monday, November 16, 2009
  19. 19. Nosso portlet... 16 Monday, November 16, 2009
  20. 20. ...suporta apenas o modo View, através da página view.jsp 17 Monday, November 16, 2009
  21. 21. Fragmento de HTML gerado por view.jsp 18 Monday, November 16, 2009
  22. 22. 19 Monday, November 16, 2009
  23. 23. <portlet> <portlet-name>hello-liferay</portlet-name> <display-name>Hello Liferay</display-name> <portlet-class>com.sample.jsp.portlet.JSPPortlet</portlet-class> <init-param> <name>view-jsp</name> <value>/view.jsp</value> </init-param> <init-param> <name>edit-jsp</name> <value>/edit.jsp</value> </init-param> (...) <supports> Vamos <mime-type>text/html</mime-type> acrescentar <portlet-mode>view</portlet-mode> também o <portlet-mode>edit</portlet-mode> suporte o modo </supports> (...) Edit 20 Monday, November 16, 2009
  24. 24. <portlet> <portlet-name>hello-liferay</portlet-name> <display-name>Hello Liferay</display-name> <portlet-class>com.sample.jsp.portlet.JSPPortlet</portlet-class> <init-param> <name>view-jsp</name> <value>/view.jsp</value> Quando mais de </init-param> um modo é <init-param> suportado pelo <name>edit-jsp</name> portlet, é preciso <value>/edit.jsp</value> especificá-los </init-param> (...) <supports> <mime-type>text/html</mime-type> <portlet-mode>view</portlet-mode> <portlet-mode>edit</portlet-mode> </supports> (...) 21 Monday, November 16, 2009
  25. 25. Criamos a página edit.jsp para o modo Edit do portlet 22 Monday, November 16, 2009
  26. 26. Fazemos o deploy do portlet... 23 Monday, November 16, 2009
  27. 27. Modo Edit habilitado... 24 Monday, November 16, 2009
  28. 28. ...e funcionando 25 Monday, November 16, 2009
  29. 29. Geralmente, o modo Edit é utilizado para se fazer configurações do portlet. Logo, façamos algo interessante. 26 Monday, November 16, 2009
  30. 30. Vamos modificar a página edit.jsp para simular um formulário simples de configuração 27 Monday, November 16, 2009
  31. 31. Nosso formulário de configurações 28 Monday, November 16, 2009
  32. 32. Evita o conflito de nomes na página do portal (lembre-se que este é apenas um fragmento de HTML) 29 Monday, November 16, 2009
  33. 33. Qual URL deverá ser chamada no submit do formulário? 29 Monday, November 16, 2009
  34. 34. De fato, não sabemos. o portlet é quem tem que nos dizer 30 Monday, November 16, 2009
  35. 35. A classe GenericPortlet disponibiliza 3 métódos de renderização de portlet doView, doEdit, doHelp ...que são chamados antes do portlet entrar em um modo específico 31 Monday, November 16, 2009
  36. 36. Portanto, vamos modificar o método doEdit para que a URL a ser utilizada pelo formulário de edit.jsp seja previamente disponibilizada 32 Monday, November 16, 2009
  37. 37. E modificar a página edit.jsp para que a action do formulário seja corretamente configurada 33 Monday, November 16, 2009
  38. 38. Visualmente, nada mudou... 34 Monday, November 16, 2009
  39. 39. <form id="_helloliferay_WAR_helloliferayportlet_INSTANC E_S6Et_helloForm" action="http://localhost:8080/web/guest/home? p_p_id=helloliferay_WAR_helloliferayportlet_INSTA NCE_S6Et&p_p_lifecycle=1&p_p_state=normal&p_p_mod e=edit&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_ count=2” method="post"> Nome: <input type="text" name="username" /> <input type="submit" value="Salvar" /> ...mas a action do formulário foi </form> configurada corretamente. 35 Monday, November 16, 2009
  40. 40. Já temos um portlet com suporte ao modo Edit. Temos um formulário para configuração do portlet. Só nos resta tratar a submissão do formulário 36 Monday, November 16, 2009
  41. 41. Em portlets, submit de dados são tratados pelo método processAction() 37 Monday, November 16, 2009
  42. 42. Vamos criar alguma lógica no processAction() 38 Monday, November 16, 2009
  43. 43. Captura parâmetros da requisição 38 Monday, November 16, 2009
  44. 44. Guarda valor enviado 38 Monday, November 16, 2009
  45. 45. Redireciona portlet para seu modo View 38 Monday, November 16, 2009
  46. 46. 39 Monday, November 16, 2009
  47. 47. No método doView, vamos recuperar o valor salvo nas preferências do portlet, e enviá-lo ao JSP view.jsp 40 Monday, November 16, 2009
  48. 48. No JSP do modo View (view.jsp), recuperamos o valor disponibilizado pelo método doView. 41 Monday, November 16, 2009
  49. 49. 42 Monday, November 16, 2009
  50. 50. Existem técnicas mais avançadas mas, com isso, 80% das portlets existentes (cadastros) podem ser desenvolvidos http://www.flickr.com/photos/dejay181/395737393/in/set-72157594529615566/ 43 Monday, November 16, 2009
  51. 51. It’s up to you! http://www.flickr.com/photos/shutter/105497713/ 44 Monday, November 16, 2009
  52. 52. Quer ajuda? o/ sea@seatecnologia.com.br 45 Monday, November 16, 2009
  53. 53. Q&A Monday, November 16, 2009

×