SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Java Portlet
            (JSR 168)

i benefici di sviluppare portlet standard

            Simone Federici
                K-Tech


        www.javaportal.it

                                       1
Roadmap
1.Cosa sono le portlet
2.Architettura
3.Usare le portlet
4.Approfondimenti
5.Conclusioni



                         2
Il talk si rivolge agli
    sviluppatori e
     analisti J2EE


 Perché usare le
  Java portlet ?
                          3
1
Cosa sono le portlet?




        ?
                        4
1
     Java Portlet = [          X
                                ]

   E' un Java Web Component !


E il suo ciclo di vita è gestito da un
          portal container.


  Ma cosa è un Portal Container?

                                     5
1
Portals JSR Complaint
  Pluto      Sun Java System
Jetspeed2       Plumtree
 LifeRay          BEA
   eXo          Oracle 9i
gridsphere     WebSphere
 uPortal      MS SharePoint
               Broadvision
                              6
1
               Standard JSR 168
●
    Portlet API
●
    Portlet Requests
●
    Preferences
●
    User information
●
    Security
●
    Deployment packaging
●
    Portlet Container
●
    Extension of servlet container
●
    Contract between component and container
                                               7
2
              Architecture
Web Browser
                         Portal Server
  Web Browser

Web Browser
                        Portlet Container



                             DATA



                                     8
Result Page               2

• Portal Server
• Portlet
                                  Portal Server
• Fragment
                                  F1
• Portlet                                 F3
                                  F2
  Container
              Portlet Container
              P1    P2    P3

                                               9
2
    Compiti del Portal server


•Aggregation
•Layout management
•Page personalization and configuration engines
•Portal administration and configuration




                                           10
2
                           Portal and Portlet
                               Interaction
                                                                Portlet                        Portlets
             User                    Portal                    container                   A      B     C
    A

                     Action on B
B        C                                    Do action on B               processAction


                                              Render A
                                                                            render



                    These requests            Render B
                    may be done in
                       parallel                                             render
                                              Render C
                                                                            render
    A’


B        C




                                                                                 Scope of the Portlet specification

                                                                                                            11
2
              Java Portlet
State:
•Normal
•Massimizza
•Minimizza


Modes:
•VIEW
•EDIT
•HELP

                             12
2
                  States
    Normal, minimizzata e massimizzata.


   Il portal server ha il compito di gestire la
renderizazione delle portlet nei deversi stati.


     Il compito del container è gestire il
   cambiamento dello stato delle portlet.



                                             13
2
              Modes
         VIEW, EDIT e HELP


Il Portal Server puo' aggiungere altri
      stati. (deve implementarli)
 E' poi possibile accedere a questi
          aggiungendo un
      <custom-portlet-mode>
         nel file descriptor.
                                      14
2
         Perche le portlet?
        non posso fare tutto
          tramite servlet?
in comune:


• J2EE Web Component
• Gestita dal container
• Generate da un paradigma request/response

                                              15
2
                     Differenze
                   Portlet & Servlet
•   Mentre la servlet genera una pagina la portlet genera un fragment
•   Le portlet non mappate da una specifica url
•   Le P. hanno un sofisticato schema di request action / render
•   Le P. hanno stati e “modes” standard che definiscono le regole di azione e
    visualizzazione
•   Le P. usano dei meccanismi di accesso e persistenza alle informazioni di
    configurazione
•   Le P. possono fare portlet rewriting cosi da essere indipendenti
    dall'implementazone del portale
•   Le P. hanno due differenti session scope: application e private.
•   Le P. non possono alterare l'HTTP header o setatre la response encoding.



                                                                          16
2
             Portability


La “stessa” portlet puo' essere usata
  in contesti estremamente diversi


 basta attivarla (deploy) in un portal
  Compliant alle spefifiche JSR168


                                    17
Portal/Portlet
                                                          2
           Architecture
   Portal server
                  Windo
                    w
     Security     Config


   Remote                      Portlet
  Execution
   module                      Portlet
                  Portlet                Enterpris
                  Dispatcher
 Aggregation                                  e
   Engine
                               Portlet
                                         Informati
                                             on
     User
Configuration/     Persistent             Systems
Personalization    Data Store
    Engine




                                                     18
3
    Portlet Life Cycle
I medodi chiamati dal container sono:
• init()
• destroy()
• processAction()
• render()


+ cheamati dal render di GenericPortlet:
• doView()
• doEdit()
• doHelp()


                                           19
Portlet Life Cycle                  3

                             Initialized
                                  by       init()
                             container     Notifies initialization of
                                           portlet by container.




render()                       Handle      processActio
                              requests
render() notifies the                      n()
                                           processAction() notifies
Portlet to generate the                    the Portlet about user's
markup fragment                            request for action.

                             Destroye
                               d by        destroy(
                             container
                                           )
                                           destroy() notifies the
                                           destruction of portlet by
                                           container. Should free
                                           up resources in this
                                           method.      20
3
                Init / destroy
void init(PortletConfig config) {
config.getInitParameter(java.lang.String name);
config.getInitParameterNames();
config.getPortletContext();
config.getPortletName();
config.getResourceBundle(java.util.Locale locale);
        this.config = config;
}


void destroy () { config=null; }


                                                     21
3
        processAction()

Viene chiamato dal container quando
 una “azione” viene effettuata nella
              portlet.


            PortletURL()
         createActionURL()

                                  22
3
           render()

Viene chiamato ogni volta che una
 portlet deve essere visualizzata
         su una pagina


          PortletURL()
       createActionURL()

                                23
3
             GenericPortlet
         E' una implementazione
           javax.portlet.Portlet

sostanzialmente aggiunge un dispacher() che chiama i
 seguenti metodi a secondo dello stato della portlet.

                  •doView()
                   •doEdit()
                   •doHelp()
                                                  24
Portlet Example                                           3

 pub lic  c las s  Hel loW or ldP or tl et  ex ten ds  
  Gen eri cP ort le t  {

    publ ic  vo id  do Vi ew ( R en der Re que st  re que st , 
                                Re nd er Res po nse  re sp ons e)  
                                th ro ws  Po rt let Exc ep tio n  {

       re sp ons e. set Co nte ntT yp e( “te xt /ht ml ”);
       Pr in tWr it er  wr ite r =  r es pon se .ge tW rit er ();
       Wr it er. wr ite (" Hel lo  Wo rl d") ;
    }
 }




                                                                    25
3
                          Render by JSP?

public class HTMLPortlet extends GenericPortlet
{
 public void doView(RenderRequest request, RenderResponse response) throws ...
 {
           PortletPreferences pref = request.getPreferences();
           String path = pref.getValue("path", "/hello_jip.jsp");


           PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(path);
           rd.include(request, response);
 }
}




                                                                                           26
3
            CustomTag
<%@taglib uri='http://java.sun.com/portlet'
            prefix="portlet" %>

         <portlet:defineObjects/>

  <!-- RenderRequest renderRequest -->
  <!-- RenderResponse renderResponse -->

    <% PortletSession renderSession =
  renderRequest.getPortletSession(); %>

                                           27
4
            Multithread
Il container può chiamare i render delle
   varie portlet da visualizzare in modo
              concorrenziale.


Ricordiamo che le azioni sono gestite nel
            processAction()


    Il render va usato solamente per
               renderizzare
                                       28
4
   Se il contenuto di una
     portlet dipende da
           un'altra?
Ci sono strutture dati condivise dalle
           portlet / servlet


 Non usate mai variabili di classe !!

                                    29
4
                           Portal and Portlet
                               Interaction
                                                                Portlet                        Portlets
             User                    Portal                    container                   A      B     C
    A

                     Action on B
B        C                                    Do action on B               processAction


                                              Render A
                                                                            render



                    These requests            Render B
                    may be done in
                       parallel                                             render
                                              Render C
                                                                            render
    A’


B        C




                                                                                 Scope of the Portlet specification

                                                                                                            30
4
Comunicazione attraverso
    PortletSession

   APPLICATION_SCOPE
    ossia nell'HttpSession


      PORTLET_SCOPE
      scope privato (*)

                             31
Portlet Web
                                                               4
           Application
   All resources, portlets, deployment descriptors are
    packaged in one web application archive (WAR file)
   PortletApp
      jsp
      htmls
      WEB-INF
          web.xml
          portlet.xml
          sun-portlet.xml
          classes
          Lib




                                                          32
Localization              4


• Portlets can be localized by using
  resource bundles
• Resource bundles are specified in
  deployment descriptor
• Portlet can access resource bundle
  via
  PortletContext.getResourceBundle()
  API
                                33
4
                   Portlet.xml
<p ort le t­a pp >  
    <por tle t>
     <po rtl et ­n ame >H ell oWo rl dPo rt let </ por tl et ­
  na me>
     <po rtl et ­c las s>
       Cu sto m. He llo Wo rld Por tl et
     </p ort le t­ cla ss >
     <ex pir at io n­c ac he> 0</ ex pir at ion ­c ach e>
     <su ppo rt s>
          <mi me ­t ype >t ext /ht ml </m im e­t yp e>
        <por tl et ­mo de >VI EW< /p ort le t­m od e>
    </ su ppo rt s>
    <p or tle t­ pr efe ren ce >
          <pr ef er enc e>
              <n am e>l oc ale  < /na me>
              <v al ue> US A</ va lue >
         </p re fe ren ce >
    </ po rtl et ­p ref ere nc e>
    </ po rtl et >
 </po rt let ­a pp >
                                                                 34
4
           Apache Bridge Struts
http://portals.apache.org/bridges/multiproject/portals-bridges-struts/


Sviluppate una Applicazione Struts!!


l'applicazione potra poi essere usata come una webapp standard
   oppure messa dentro un portal come una portlet.




   Richiede che il container implementi una ulteriore interfaccia...


                                                                 35
Grazie alla Community di Javaportal
   che sempre cresce sempre più


  Grazie a tutti voi di essere qui


     Restate con noi.. perchè


   Programmiamo da far Paura!

                                     36
Framework


Si sposano bene con altri
      framework?




                            37
Resources
• Javapassion
   http://www.javapassion.com

• Java Community Process
   http://www.jcp.org/en/jsr/detail?id=168




                                             38

Mais conteúdo relacionado

Semelhante a Jipday Portletjsr168

Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...DavisMol
 
Oracle Application Server 10g
Oracle Application Server 10gOracle Application Server 10g
Oracle Application Server 10gPaolo Campegiani
 
SignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaSignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaAndrea Tosato
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cactidalegiuseppe
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Marcello Teodori
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSMorlini Gabriele
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Osd 2016 Middleware Track
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware TrackUgo Landini
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS Imola Informatica
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP WayLuca Milan
 

Semelhante a Jipday Portletjsr168 (20)

SIMarket_Massimo La Morgia
SIMarket_Massimo La MorgiaSIMarket_Massimo La Morgia
SIMarket_Massimo La Morgia
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
 
System.AddIn @ Xe.Net
System.AddIn @ Xe.NetSystem.AddIn @ Xe.Net
System.AddIn @ Xe.Net
 
Oracle Application Server 10g
Oracle Application Server 10gOracle Application Server 10g
Oracle Application Server 10g
 
SignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaSignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancava
 
Portlet JSR168/286
Portlet JSR168/286Portlet JSR168/286
Portlet JSR168/286
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Monitoraggio della rete con cacti
Monitoraggio della rete con cactiMonitoraggio della rete con cacti
Monitoraggio della rete con cacti
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
 
Web services
Web servicesWeb services
Web services
 
3D-DRESD RABAN
3D-DRESD RABAN3D-DRESD RABAN
3D-DRESD RABAN
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFSLa nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Osd 2016 Middleware Track
Osd 2016 Middleware TrackOsd 2016 Middleware Track
Osd 2016 Middleware Track
 
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
La nostra infrastruttura di produzione a container con Docker, Rancher e ZFS
 
Web Api – The HTTP Way
Web Api – The HTTP WayWeb Api – The HTTP Way
Web Api – The HTTP Way
 
Kubernetes Core Concepts
Kubernetes Core ConceptsKubernetes Core Concepts
Kubernetes Core Concepts
 
Servizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automationServizio di Connettività d'Ateneo - Network and services provisioning automation
Servizio di Connettività d'Ateneo - Network and services provisioning automation
 
8 Www2009 Parte2
8 Www2009 Parte28 Www2009 Parte2
8 Www2009 Parte2
 

Mais de Simone Federici

Mais de Simone Federici (13)

Fabric Python Lib
Fabric Python LibFabric Python Lib
Fabric Python Lib
 
DevOps with Fabric
DevOps with FabricDevOps with Fabric
DevOps with Fabric
 
What is kanban
What is kanbanWhat is kanban
What is kanban
 
What is xp
What is xpWhat is xp
What is xp
 
Django productivity tips and tricks
Django productivity tips and tricksDjango productivity tips and tricks
Django productivity tips and tricks
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di liberta
 
Java o non java
Java o non javaJava o non java
Java o non java
 
Django in enterprise world
Django in enterprise worldDjango in enterprise world
Django in enterprise world
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo eviti
 
Java VS Python
Java VS PythonJava VS Python
Java VS Python
 
Opensource Aziende
Opensource AziendeOpensource Aziende
Opensource Aziende
 
Maven Eclipse
Maven EclipseMaven Eclipse
Maven Eclipse
 
Terracotta Springmeeting
Terracotta SpringmeetingTerracotta Springmeeting
Terracotta Springmeeting
 

Jipday Portletjsr168

  • 1. Java Portlet (JSR 168) i benefici di sviluppare portlet standard Simone Federici K-Tech www.javaportal.it 1
  • 2. Roadmap 1.Cosa sono le portlet 2.Architettura 3.Usare le portlet 4.Approfondimenti 5.Conclusioni 2
  • 3. Il talk si rivolge agli sviluppatori e analisti J2EE Perché usare le Java portlet ? 3
  • 4. 1 Cosa sono le portlet? ? 4
  • 5. 1 Java Portlet = [ X ] E' un Java Web Component ! E il suo ciclo di vita è gestito da un portal container. Ma cosa è un Portal Container? 5
  • 6. 1 Portals JSR Complaint Pluto Sun Java System Jetspeed2 Plumtree LifeRay BEA eXo Oracle 9i gridsphere WebSphere uPortal MS SharePoint Broadvision 6
  • 7. 1 Standard JSR 168 ● Portlet API ● Portlet Requests ● Preferences ● User information ● Security ● Deployment packaging ● Portlet Container ● Extension of servlet container ● Contract between component and container 7
  • 8. 2 Architecture Web Browser Portal Server Web Browser Web Browser Portlet Container DATA 8
  • 9. Result Page 2 • Portal Server • Portlet Portal Server • Fragment F1 • Portlet F3 F2 Container Portlet Container P1 P2 P3 9
  • 10. 2 Compiti del Portal server •Aggregation •Layout management •Page personalization and configuration engines •Portal administration and configuration 10
  • 11. 2 Portal and Portlet Interaction Portlet Portlets User Portal container A B C A Action on B B C Do action on B processAction Render A render These requests Render B may be done in parallel render Render C render A’ B C Scope of the Portlet specification 11
  • 12. 2 Java Portlet State: •Normal •Massimizza •Minimizza Modes: •VIEW •EDIT •HELP 12
  • 13. 2 States Normal, minimizzata e massimizzata. Il portal server ha il compito di gestire la renderizazione delle portlet nei deversi stati. Il compito del container è gestire il cambiamento dello stato delle portlet. 13
  • 14. 2 Modes VIEW, EDIT e HELP Il Portal Server puo' aggiungere altri stati. (deve implementarli) E' poi possibile accedere a questi aggiungendo un <custom-portlet-mode> nel file descriptor. 14
  • 15. 2 Perche le portlet? non posso fare tutto tramite servlet? in comune: • J2EE Web Component • Gestita dal container • Generate da un paradigma request/response 15
  • 16. 2 Differenze Portlet & Servlet • Mentre la servlet genera una pagina la portlet genera un fragment • Le portlet non mappate da una specifica url • Le P. hanno un sofisticato schema di request action / render • Le P. hanno stati e “modes” standard che definiscono le regole di azione e visualizzazione • Le P. usano dei meccanismi di accesso e persistenza alle informazioni di configurazione • Le P. possono fare portlet rewriting cosi da essere indipendenti dall'implementazone del portale • Le P. hanno due differenti session scope: application e private. • Le P. non possono alterare l'HTTP header o setatre la response encoding. 16
  • 17. 2 Portability La “stessa” portlet puo' essere usata in contesti estremamente diversi basta attivarla (deploy) in un portal Compliant alle spefifiche JSR168 17
  • 18. Portal/Portlet 2 Architecture Portal server Windo w Security Config Remote Portlet Execution module Portlet Portlet Enterpris Dispatcher Aggregation e Engine Portlet Informati on User Configuration/ Persistent Systems Personalization Data Store Engine 18
  • 19. 3 Portlet Life Cycle I medodi chiamati dal container sono: • init() • destroy() • processAction() • render() + cheamati dal render di GenericPortlet: • doView() • doEdit() • doHelp() 19
  • 20. Portlet Life Cycle 3 Initialized by init() container Notifies initialization of portlet by container. render() Handle processActio requests render() notifies the n() processAction() notifies Portlet to generate the the Portlet about user's markup fragment request for action. Destroye d by destroy( container ) destroy() notifies the destruction of portlet by container. Should free up resources in this method. 20
  • 21. 3 Init / destroy void init(PortletConfig config) { config.getInitParameter(java.lang.String name); config.getInitParameterNames(); config.getPortletContext(); config.getPortletName(); config.getResourceBundle(java.util.Locale locale); this.config = config; } void destroy () { config=null; } 21
  • 22. 3 processAction() Viene chiamato dal container quando una “azione” viene effettuata nella portlet. PortletURL() createActionURL() 22
  • 23. 3 render() Viene chiamato ogni volta che una portlet deve essere visualizzata su una pagina PortletURL() createActionURL() 23
  • 24. 3 GenericPortlet E' una implementazione javax.portlet.Portlet sostanzialmente aggiunge un dispacher() che chiama i seguenti metodi a secondo dello stato della portlet. •doView() •doEdit() •doHelp() 24
  • 25. Portlet Example 3  pub lic  c las s  Hel loW or ldP or tl et  ex ten ds   Gen eri cP ort le t  {     publ ic  vo id  do Vi ew ( R en der Re que st  re que st ,                                  Re nd er Res po nse  re sp ons e)                                   th ro ws  Po rt let Exc ep tio n  {        re sp ons e. set Co nte ntT yp e( “te xt /ht ml ”);        Pr in tWr it er  wr ite r =  r es pon se .ge tW rit er ();        Wr it er. wr ite (" Hel lo  Wo rl d") ;     }  } 25
  • 26. 3 Render by JSP? public class HTMLPortlet extends GenericPortlet { public void doView(RenderRequest request, RenderResponse response) throws ... { PortletPreferences pref = request.getPreferences(); String path = pref.getValue("path", "/hello_jip.jsp"); PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(path); rd.include(request, response); } } 26
  • 27. 3 CustomTag <%@taglib uri='http://java.sun.com/portlet' prefix="portlet" %> <portlet:defineObjects/> <!-- RenderRequest renderRequest --> <!-- RenderResponse renderResponse --> <% PortletSession renderSession = renderRequest.getPortletSession(); %> 27
  • 28. 4 Multithread Il container può chiamare i render delle varie portlet da visualizzare in modo concorrenziale. Ricordiamo che le azioni sono gestite nel processAction() Il render va usato solamente per renderizzare 28
  • 29. 4 Se il contenuto di una portlet dipende da un'altra? Ci sono strutture dati condivise dalle portlet / servlet Non usate mai variabili di classe !! 29
  • 30. 4 Portal and Portlet Interaction Portlet Portlets User Portal container A B C A Action on B B C Do action on B processAction Render A render These requests Render B may be done in parallel render Render C render A’ B C Scope of the Portlet specification 30
  • 31. 4 Comunicazione attraverso PortletSession APPLICATION_SCOPE ossia nell'HttpSession PORTLET_SCOPE scope privato (*) 31
  • 32. Portlet Web 4 Application  All resources, portlets, deployment descriptors are packaged in one web application archive (WAR file)  PortletApp  jsp  htmls  WEB-INF  web.xml  portlet.xml  sun-portlet.xml  classes  Lib 32
  • 33. Localization 4 • Portlets can be localized by using resource bundles • Resource bundles are specified in deployment descriptor • Portlet can access resource bundle via PortletContext.getResourceBundle() API 33
  • 34. 4 Portlet.xml <p ort le t­a pp >       <por tle t>      <po rtl et ­n ame >H ell oWo rl dPo rt let </ por tl et ­ na me>      <po rtl et ­c las s>        Cu sto m. He llo Wo rld Por tl et      </p ort le t­ cla ss >      <ex pir at io n­c ac he> 0</ ex pir at ion ­c ach e>      <su ppo rt s>           <mi me ­t ype >t ext /ht ml </m im e­t yp e>         <por tl et ­mo de >VI EW< /p ort le t­m od e>     </ su ppo rt s>     <p or tle t­ pr efe ren ce >           <pr ef er enc e>               <n am e>l oc ale  < /na me>               <v al ue> US A</ va lue >          </p re fe ren ce >     </ po rtl et ­p ref ere nc e>     </ po rtl et >  </po rt let ­a pp > 34
  • 35. 4 Apache Bridge Struts http://portals.apache.org/bridges/multiproject/portals-bridges-struts/ Sviluppate una Applicazione Struts!! l'applicazione potra poi essere usata come una webapp standard oppure messa dentro un portal come una portlet. Richiede che il container implementi una ulteriore interfaccia... 35
  • 36. Grazie alla Community di Javaportal che sempre cresce sempre più Grazie a tutti voi di essere qui Restate con noi.. perchè Programmiamo da far Paura! 36
  • 37. Framework Si sposano bene con altri framework? 37
  • 38. Resources • Javapassion http://www.javapassion.com • Java Community Process http://www.jcp.org/en/jsr/detail?id=168 38