<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7277117685636736512</atom:id><lastBuildDate>Thu, 19 Dec 2024 03:28:31 +0000</lastBuildDate><category>portlet</category><category>jsr portlet</category><category>jsr 286</category><category>jsr168</category><category>Ajax with JSR</category><category>inter portlet communication</category><category>jsr 168 tutorial</category><category>jsr spec</category><category>portlet communitation</category><category>portlet filters</category><title>Portlets</title><description></description><link>http://jsr-portlets.blogspot.com/</link><managingEditor>noreply@blogger.com (Unknown)</managingEditor><generator>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-7412325836270444567</guid><pubDate>Sat, 30 Oct 2010 15:44:00 +0000</pubDate><atom:updated>2010-10-30T08:51:46.036-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Ajax with JSR</category><category domain="http://www.blogger.com/atom/ns#">jsr portlet</category><category domain="http://www.blogger.com/atom/ns#">jsr168</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><title>Ajax to JSR 168 Portlets</title><description>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;Good article on &lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;Best Practices for Applying AJAX to JSR 168 Portlets &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;a href=&quot;http://developers.sun.com/portalserver/reference/techart/ajax-portlets.html&quot; target=&quot;_blank&quot;&gt;http://developers.sun.com/portalserver/reference/techart/ajax-portlets.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/ajax-to-jsr-168-portlets.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-1833361647058432938</guid><pubDate>Fri, 29 Oct 2010 08:26:00 +0000</pubDate><atom:updated>2010-10-30T08:35:21.995-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jsr 286</category><category domain="http://www.blogger.com/atom/ns#">jsr portlet</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><category domain="http://www.blogger.com/atom/ns#">portlet filters</category><title>JSR 286 Portlet filters</title><description>&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;The new portlet filter functionality allows you to plug filters around any life-cycle call of the portlet. Following the common decorator pattern, filters can do pre- or post-processing, and they can modify or wrap the request and response objects that are passed to the portlet. Typical applications of portlet filters could include these:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Passing information from additional sources to the portlet as attributes or parameters&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Output filtering for security enforcement or markup compliance&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Collecting diagnostic information&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Bridging between Web application frameworks, for example, uses a filter approach to augment the markup of portlets with additional semantic information for client-side click-to-action.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;The portlet filter programming model is modeled on the servlet filter model:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Define the filters in the deployment descriptor. This definition is done using the element, where you also need to state the life-cycle call to which the filter should be applied.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Implement the corresponding Filter interface in your filter. You can also list multiple life-cycle entries and implement multiple Filter interfaces with your class.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;Provide a filter-mapping element where you describe to which portlets your filter should be applied (you can also use an asterisk as a wildcard if it should be applied to all portlets in the application).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;The order of the filter-mapping elements in the deployment descriptor also defines the order of the filters that are applied to the portlet.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;pub-8257829043345131&quot;;&lt;br /&gt;/* jsr - body - 468x60, created 10/30/10 */&lt;br /&gt;google_ad_slot = &quot;4311898869&quot;;&lt;br /&gt;google_ad_width = 468;&lt;br /&gt;google_ad_height = 60;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot;&lt;br /&gt;src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/jsr-286-portlet-filters_29.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-5199958907892953709</guid><pubDate>Thu, 28 Oct 2010 15:58:00 +0000</pubDate><atom:updated>2010-10-30T08:35:37.128-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">inter portlet communication</category><category domain="http://www.blogger.com/atom/ns#">jsr 286</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><category domain="http://www.blogger.com/atom/ns#">portlet communitation</category><title>Inter Portlet Coordination with JSR 286</title><description>&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;/p&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;Coordination between portlets is a very common  requirement. An example of information sharing between portlets can be a weather  portlet displaying the weather information of a city and a map portlet  displaying the location of the city. Since, both the portlets would be using the  same zip code for a user, there should be mechanism provided by the portlal  containers to allow portlets to share the zip code.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;Prior to JSR 286, the support for inter portlet communication was rather  minimal and information sharing between different portlets was accompalished  primarily using application scoped session objects or vendor specific APIs. Both  of above methods were rather problematic as in the former maintaining the  uniqueness of the session attribute over a complex aaplication was a concern and  in the later portability of the portlet was hampered. In order to provide  coordination between portlets the Java Portlet Specification v2.0 (JSR 286)  introduces the following mechanisms:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;public render parameters in order to share render state between  portlets.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;portlet events that a portlet can receive and send. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;Let&#39;s have a look how to use the above features.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;a href=&quot;http://blog.xebia.com/2009/04/19/inter-portlet-coordination-with-jsr-286/&quot; target=&quot;_blank&quot;&gt;Read More&gt;&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;pub-8257829043345131&quot;;&lt;br /&gt;/* jsr - body - 468x60, created 10/30/10 */&lt;br /&gt;google_ad_slot = &quot;4311898869&quot;;&lt;br /&gt;google_ad_width = 468;&lt;br /&gt;google_ad_height = 60;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot;&lt;br /&gt;src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/inter-portlet-coordination-with-jsr-286.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-4377851052802853153</guid><pubDate>Thu, 28 Oct 2010 15:01:00 +0000</pubDate><atom:updated>2010-10-30T08:35:48.193-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">portlet</category><title>What is a Portlet?</title><description>&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:&#39;times new roman&#39;;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;A portlet is a Web based component that will process requests and generate dynamic content. The end-user would essentially see a portlet as being a specialized content area within a Web page that occupies a small window in the portal page. Depending on the content nature of the Web site providing the portlet you could use this area to receive different types of information such as news, travel information, or even local weather. The portlet provides users with the capability to customize the content, appearance and position of the portlet.&lt;/span&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;pub-8257829043345131&quot;;&lt;br /&gt;/* jsr - body - 468x60, created 10/30/10 */&lt;br /&gt;google_ad_slot = &quot;4311898869&quot;;&lt;br /&gt;google_ad_width = 468;&lt;br /&gt;google_ad_height = 60;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot;&lt;br /&gt;src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/what-is-portlet_28.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-334971954988125939</guid><pubDate>Thu, 28 Oct 2010 11:36:00 +0000</pubDate><atom:updated>2010-10-28T06:12:59.219-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jsr portlet</category><category domain="http://www.blogger.com/atom/ns#">jsr spec</category><category domain="http://www.blogger.com/atom/ns#">jsr168</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><title>JSR-168 Portlet Specification</title><description>&lt;div&gt;JSR 168 Portlet specification&lt;/div&gt;&lt;a href=&quot;http://jcp.org/aboutJava/communityprocess/final/jsr168/index.html&quot; target=&quot;_blank&quot;&gt;http://jcp.org/aboutJava/communityprocess/final/jsr168/index.html&lt;/a&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/jsr-168-portlet-specification.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-310191103425949984</guid><pubDate>Thu, 28 Oct 2010 11:31:00 +0000</pubDate><atom:updated>2010-10-28T06:12:33.594-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jsr 286</category><category domain="http://www.blogger.com/atom/ns#">jsr portlet</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><title>JSR-286 Portlet Specification (Portlet 2.0)</title><description>&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;JSR 286 Specification (Portlet 2.0) is available to download from the JCP website. Here is the direct link - &lt;a href=&quot;http://jcp.org/aboutJava/communityprocess/final/jsr286/index.html&quot; target=&quot;_blank&quot;&gt;http://jcp.org/aboutJava/communityprocess/final/jsr286/index.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/jsr-286-specification-portlet-2.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7277117685636736512.post-5828743130235226657</guid><pubDate>Thu, 28 Oct 2010 10:26:00 +0000</pubDate><atom:updated>2010-10-30T08:35:07.415-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">jsr 168 tutorial</category><category domain="http://www.blogger.com/atom/ns#">jsr portlet</category><category domain="http://www.blogger.com/atom/ns#">jsr168</category><category domain="http://www.blogger.com/atom/ns#">portlet</category><title>JSR 168 Tutorial - part I</title><description>&lt;b&gt;What is JSR 168?&lt;/b&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;  &lt;p class=&quot;MsoNormal&quot; size=&quot;medium&quot; style=&quot; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;•From the portletdevelopment point of view, it is really very simple:&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; size=&quot;medium&quot; style=&quot; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–You write a java class that extends GenericPortlet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–You override/implement several methods inherited from GenericPortlet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–You use some supporting classes/interfaces&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;•Many are analogous to their servletequivalents &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;•Some (portletsession) actually seem to be trivial wrappers around servletequivalents in Pluto.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Some Terminology&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Portlet:&lt;span style=&quot;mso-spacerun:yes&quot;&gt;  &lt;/span&gt;&lt;/b&gt;Java code that manages a piece of web content and which may invoke services.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;PortletContainer: &lt;/b&gt;Manages the lifecycle of the portlets (inits, invokes,destroys).&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Portal: &lt;/b&gt;Displays the portal content provided by the container. The portal is responsible for the actual layout.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Portlet Application: &lt;/b&gt;A webappcontaining a group of related portlets, content, supporting jars, etc.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;The Big Picture&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;•As a portletdeveloper, the previous set of classes are all you normally touch.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;•The portletcontainer (Pluto) is responsible for running your portlets.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–Init, invoke methods, destroy. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;•Portletshave a very limited way of interacting with the container.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–It is a black box-&gt;black hole.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;–The API is basically one-way.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-weight: normal; color: rgb(0, 0, 238);  -webkit-text-decorations-in-effect: underline; font-size:16px;&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU-bTkk1nDN5NW1W5l9R5X0jNzwJiDAIWhILS5PSFoDlff78kS9dJqLqh84HYJN5Sk07TG7GoOFqPLKev0YfdxqhdxJlt66iwJ08G8c9_KfesOcCpS5jDA9gbFRlzff6AIObBZGte2ET8/s320/portal.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5533050636468832482&quot; style=&quot;float: left; margin-top: 0px; margin-right: 10px; margin-bottom: 10px; margin-left: 0px; cursor: pointer; width: 320px; height: 118px; &quot; /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;u&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline; &quot;&gt;&lt;/span&gt;&lt;/u&gt;&lt;b&gt;Some Generic Portlet Methods&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Init : &lt;/b&gt;Called when the portlet is created. Override if you need to set initial params.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;doView : &lt;/b&gt;Controls what happens immediately before the portlet is displayed in view mode. Normally you override this.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;doHelp, doEdit&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;Other portlet display modes&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;processAction : &lt;/b&gt;Place for handling any &lt;/p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:medium;&quot;&gt; html form actions before turning over to the display mode method (like doView). You should override this for web forms.&lt;/span&gt;&lt;p style=&quot;font-size: medium; &quot;&gt;&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;Some Supporting Classes/Interfaces&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;PortletContext&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;Similar to servlet context; get context info and the RequestDispatcher from here.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;PortletSession&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;Stores attribute information for a single portlet application across multiple requests.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;RenderRequest, &lt;/b&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;RenderResponse&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;The request and response objects available to the doView() method. Similar to the normal servlet request&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;ActionRequest,ActionResponse&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;The request and response objects available to the processAction() method. Similar to the servlet request and response objects.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;PortletURL&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;Use this to create URLs that reference the portal.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;PortletRequestDispatcher&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;Use this to include/forward to a JSP or servlet in the same portlet app.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;b style=&quot;mso-bidi-font-weight:normal&quot;&gt;WindowState&lt;/b&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;See if you are in minimized, maximized, normal state.&lt;/p&gt;&lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;font-size: medium; &quot;&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div  style=&quot; ;font-size:medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--&lt;br /&gt;google_ad_client = &quot;pub-8257829043345131&quot;;&lt;br /&gt;/* jsr - body - 468x60, created 10/30/10 */&lt;br /&gt;google_ad_slot = &quot;4311898869&quot;;&lt;br /&gt;google_ad_width = 468;&lt;br /&gt;google_ad_height = 60;&lt;br /&gt;//--&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type=&quot;text/javascript&quot;&lt;br /&gt;src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://jsr-portlets.blogspot.com/2010/10/jsr-168-tutorial-part-i.html</link><author>noreply@blogger.com (Unknown)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU-bTkk1nDN5NW1W5l9R5X0jNzwJiDAIWhILS5PSFoDlff78kS9dJqLqh84HYJN5Sk07TG7GoOFqPLKev0YfdxqhdxJlt66iwJ08G8c9_KfesOcCpS5jDA9gbFRlzff6AIObBZGte2ET8/s72-c/portal.jpg" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>