<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='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'><id>tag:blogger.com,1999:blog-9045745100636293514</id><updated>2024-10-25T04:23:36.061+05:30</updated><category term="Basic JSP Portlet"/><category term="EnterpriseAdmin-portlet"/><category term="Simple Struts Portlet"/><category term="Spring Portlet"/><category term="dynamic-query"/><category term="email validation"/><category term="liferay"/><category term="liferay  Basic JSP Portlet"/><category term="liferay Simple Struts Portlet"/><category term="liferay Spring Portlet"/><category term="liferay theme"/><category term="liferay websites"/><category term="liferay-dynamic-query-example"/><category term="theme"/><title type='text'>Liferay</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-1900938342592595877</id><published>2009-07-21T16:06:00.001+05:30</published><updated>2009-07-21T16:07:50.739+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="EnterpriseAdmin-portlet"/><title type='text'>EnterpriseAdmin-portlet</title><content type='html'>3 types of users&lt;br /&gt;1.user&lt;br /&gt;2.power user&lt;br /&gt;3.Admin user&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;1.Creating Users&lt;br /&gt;=========================================================================================&lt;br /&gt;&lt;br /&gt;1.1 Log in to your Portal as the administrative user , test@liferay.com&lt;br /&gt;&lt;br /&gt;1.2 Use the Dock to navigate to the Add Application&lt;br /&gt;&lt;br /&gt;1.3 Add Enterprise Admin Portlet and Click on Users tab&lt;br /&gt;&lt;br /&gt;1.4 Click Add User&lt;br /&gt;&lt;br /&gt;1.5 Enter data to Screen name= writer , Email=writer@liferay.com, First Name =writer etc&lt;br /&gt;&lt;br /&gt;1.6 Click Save&lt;br /&gt;&lt;br /&gt;1.7 Add 2 more users with Screen Name= approver and publisher (This is for Workflow)&lt;br /&gt;&lt;br /&gt;1.8 Click the Password tab and enter a new password for the users created&lt;br /&gt;&lt;br /&gt;1.9 Click Save.&lt;br /&gt;&lt;br /&gt;1.10.Navigate to Different User Information you can update and Save&lt;br /&gt;&lt;br /&gt;1.11 In the USERS view tab Edit,Permissions, Manage Pages,Impersonate User and Deactivate Actions are there&lt;br /&gt;Please Navigate it and check.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;2.Creating Organizations&lt;br /&gt;=========================================================================================&lt;br /&gt;&lt;br /&gt;1.1 Log in to your Portal as the administrative user , test@liferay.com&lt;br /&gt;&lt;br /&gt;1.2 Use the Dock to navigate to the Add Application&lt;br /&gt;&lt;br /&gt;1.3 Add Enterprise Admin Portlet and Click on Organizations tab&lt;br /&gt;&lt;br /&gt;1.4 Click Add Organization&lt;br /&gt;&lt;br /&gt;1.5 Enter Name= skali , Type Regular Organization ,Country=Malaysia&lt;br /&gt;&lt;br /&gt;1.6 Click Save&lt;br /&gt;&lt;br /&gt;1.5 Enter Name= Marketing , Type Regular Organization ,Country=Malaysia Select Parent Organization=skali&lt;br /&gt;&lt;br /&gt;1.7 Once Organiztions are created in tab the Organization lists will be displayed and Navigate to Different Actions by clicking Actions tab&lt;br /&gt;&lt;br /&gt;1.8 assign members to the organizations thru&lt;br /&gt;=========================================================================================&lt;br /&gt;3.Create/Assign UserGroups&lt;br /&gt;=========================================================================================&lt;br /&gt;1.1 Log in to your Portal as the administrative user , test@liferay.com&lt;br /&gt;&lt;br /&gt;1.2 Use the Dock to navigate to the Add Application&lt;br /&gt;&lt;br /&gt;1.3 Add Enterprise Admin Portlet and Click on UserGroups tab&lt;br /&gt;&lt;br /&gt;1.4 Click Add&lt;br /&gt;&lt;br /&gt;1.5 Enter Name= usergroup&lt;br /&gt;&lt;br /&gt;1.6 Click Save&lt;br /&gt;&lt;br /&gt;1.7 Navigate to Different Actions by clicking Actions tab&lt;br /&gt;&lt;br /&gt;1.8 assign members to the user group and manage pages to have common as the user groups&lt;br /&gt;&lt;br /&gt;=========================================================================================&lt;br /&gt;4.Create/Assign Roles&lt;br /&gt;=========================================================================================&lt;br /&gt;1.1 Log in to your Portal as the administrative user , test@liferay.com&lt;br /&gt;&lt;br /&gt;1.2 Use the Dock to navigate to the Add Application&lt;br /&gt;&lt;br /&gt;1.3 Click Roles&lt;br /&gt;&lt;br /&gt;1.4 Click Add&lt;br /&gt;&lt;br /&gt;1.5 Enter Name= writer&lt;br /&gt;&lt;br /&gt;1.6 Click Save&lt;br /&gt;&lt;br /&gt;1.7 Navigate to Different Actions by clicking Actions tab&lt;br /&gt;&lt;br /&gt;1.8 assign members to the roles in actions tab&lt;br /&gt;&lt;br /&gt;Community&lt;br /&gt;=========================================================================================&lt;br /&gt;5.Creating Communities&lt;br /&gt;=========================================================================================&lt;br /&gt;1.1 Log in to your Portal as the administrative user , test@liferay.com&lt;br /&gt;&lt;br /&gt;1.2 Use the Dock to navigate to the Add Application&lt;br /&gt;&lt;br /&gt;1.3 Add Communities Portlet&lt;br /&gt;&lt;br /&gt;1.4 Click Add Community&lt;br /&gt;&lt;br /&gt;1.5 Enter Name= Developer , Type =Open&lt;br /&gt;&lt;br /&gt;1.6 Click Save&lt;br /&gt;&lt;br /&gt;1.7 Navigate to Different Actions by clicking Actions tab&lt;br /&gt;&lt;br /&gt;1.8 assign members to the communities in actions tab&lt;br /&gt;&lt;br /&gt;Exercise&lt;br /&gt;Create a community in one instance&lt;br /&gt;&lt;br /&gt;Create some public and private pages for the created community add some portlets&lt;br /&gt;&lt;br /&gt;Create another community in another instance&lt;br /&gt;&lt;br /&gt;Export the LAR file and import the LAR file into another instance</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/1900938342592595877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/enterpriseadmin-portlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/1900938342592595877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/1900938342592595877'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/enterpriseadmin-portlet.html' title='EnterpriseAdmin-portlet'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-885649479935433598</id><published>2009-07-21T09:55:00.002+05:30</published><updated>2009-07-21T09:56:04.894+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay theme"/><category scheme="http://www.blogger.com/atom/ns#" term="theme"/><title type='text'>Creating a new Theme</title><content type='html'>&lt;p&gt;In the $PLUGINS_SDK/themes folder run: &lt;/p&gt;&lt;br /&gt;&lt;p&gt; ant -Dtheme.name=newtheme -Dtheme.display.name=&amp;quot;My New Theme&amp;quot; create&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;quot;newtheme&amp;quot; will be the theme name we would like to give.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&quot;My New Theme&quot; will the display name of our theme.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Navigate to the newly created $PLUGINS_SDK/themes/newtheme/_diffs and add some customizations to the default theme.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;After this, In the $PLUGINS_SDK/themes folder run:&lt;/p&gt;&lt;br /&gt;                   &lt;p&gt;ant war&lt;/p&gt;&lt;br /&gt;The war file of our theme will be created in the $PLUGINS_SDK/themes/dist .&lt;br /&gt;&lt;br /&gt;Now deploy this war file.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can go to your deploy (webapps) directory and see the new theme folder being created there.&lt;br /&gt;&lt;br /&gt;Once your theme has been deployed, and you&#39;re ready to modify the CSS, use the custom.css file to change and override the default styling, leaving all of the other CSS files alone. You can modify any of the javascript files, image files, and template files, but the CSS changes should be restricted to custom.css.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Once you&#39;re done modifying your files, you must place them in your _diffs directory with the same directory structure as the actual theme.we&#39;ll assume that you&#39;ve modified the custom.css file, an image file in the dock, and two template&lt;/p&gt;&lt;br /&gt;&lt;p&gt; files: portal_normal.vm and portlet.vm. With those files, your _diffs directory would look like this: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;plugins/themes/newtheme/ &lt;/p&gt;&lt;br /&gt; _diffs/&lt;br /&gt;&lt;br /&gt;     css/&lt;br /&gt;&lt;br /&gt;      custom.css&lt;br /&gt;&lt;br /&gt;     images/&lt;br /&gt;&lt;br /&gt;     dock/&lt;br /&gt;&lt;br /&gt;        menu_bar.png&lt;br /&gt;&lt;br /&gt;     templates/&lt;br /&gt;&lt;br /&gt;     portal_normal.vm&lt;br /&gt;&lt;br /&gt;     portlet.vm&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The order in which your theme is built goes something like this: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;It creates the directory and adds the appropriate build files, and XML files needed. It then copies all of the files from the _unstyled/ directory, and after that, the files from _styled/ are copied over, and the last step is that your files in the _diffs directory are copied over. So this means you will place all of your new files and changed files into the _diffs directory. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Color Schemes&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In your liferay-look-and-feel.xml (located in WEB-INF), you would specify the class names like so:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;theme id=&quot;my_theme&quot; name=&quot;My Theme&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;root-path&amp;gt;/my_theme&amp;lt;/root-path&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;templates-path&amp;gt;${root-path}/templates&amp;lt;/templates-path&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;images-path&amp;gt;${root-path}/images&amp;lt;/images-path&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;template-extension&amp;gt;vm&amp;lt;/template-extension&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;color-scheme id=&quot;01&quot; name=&quot;Blue&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;                           &amp;lt;css-class&amp;gt;blue&amp;lt;/css-class&amp;gt;&lt;br /&gt;&lt;br /&gt;                            &amp;lt;color-scheme-images-path&amp;gt;${images-path}/color_schemes/${css-class}&amp;lt;/color-scheme-images-path&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;/color-scheme&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;color-scheme id=&quot;02&quot; name=&quot;Green&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;                            &amp;lt;css-class&gt;green&amp;lt;/css-class&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;/color-scheme&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/theme&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The way you would style your different color schemes is like so: &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Inside of your css directory, create a folder called &amp;quot;color_schemes&amp;quot;. Inside of that directory, place a css file for each of your color schemes. In the case above, we would could either have just one called green.css and let the default styling handle the first color scheme, or you could have both blue.css and green.css. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, inside of your custom.css, you would place the following lines: &lt;/p&gt;&lt;br /&gt;  @import url(color_schemes/blue.css);&lt;br /&gt;&lt;br /&gt;  @import url(color_schemes/green.css);&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The way you would identify the styling for the css is this way: In blue.css you would prefix all of your css styles like this: &lt;/p&gt;&lt;br /&gt;  .blue a {color: #06C;}&lt;br /&gt;&lt;br /&gt;  .blue h1 {border-bottom: 1px solid #06C}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And in green.css you would prefix all of your css styles like this: &lt;br /&gt;&lt;br /&gt;  .green a {color: #0C6;}&lt;br /&gt;&lt;br /&gt;  .green h1 {border-bottom: 1px solid #0C6}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Customization of CSS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here are the descriptions for each of the CSS files: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;main.css&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;this file includes all of the other css files. This file can be edited, but probably should not be.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;custom.css&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This file is where the developer should place all of their css that is different from the other files, unless they are not concerned about upgrading their theme later on. By placing their custom CSS in this file, and not touching the other files, they can be assured that the upgrading of their theme later on will be much smoother.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;base.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains all of the base styling that is fairly generic, such as the styling for all elements not directly related to another aspect of the site, such as the forms or navigation or dock.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;forms.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains all css styling related to form elements on the page.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;layout.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains all of the styling related to the layouts. It is fairly low level, and should most likely not be edited, unless there is something specific they need.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;navigation.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains all of the styling related to the navigation, as well as the dock.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;portlet.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains all of the styling related to the portlets, including the JSR-168 class-names.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;tabs.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file includes all of the styling related to the tabs in the portlets.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;deprecated.css&lt;/b&gt;&lt;br /&gt;&lt;p&gt;This file contains styles that are deprecated, but included for compatibility. It can most likely be safely ignored.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Use the custom.css file to change and override the default styling, leaving all of the other CSS files alone. You can modify any of the javascript files, image files, and template files, but the CSS changes should be restricted to custom.css.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For example the body background color is defined in base.css as follows:&lt;/p&gt;&lt;br /&gt;body {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    background-color: #fff;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;in the above example the background color used is white ,and if would like to change the color to say black then write the below css in custom.css:&lt;/p&gt;&lt;br /&gt;body {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    background-color: #000;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Similarly we can change the default css by rewriting them in custom.css&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Templates:&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;Here are the descriptions for each of the templates: &lt;br /&gt;&lt;br /&gt;&lt;b&gt;portal_normal.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;this file contains the overall site structure, from opening HTML tag to closing. It includes the header, and footer, and includes the two templates (i.e., dock.vm and navigation.vm) and it also includes the system files needed by the liferay core&lt;/p&gt;&lt;br /&gt;&lt;b&gt;dock.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;this file contains all of the HTML for the dock. &lt;/p&gt;&lt;br /&gt;&lt;b&gt;navigation.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;this file contains all of the html for the navigation&lt;/p&gt;&lt;br /&gt;&lt;b&gt;portal_pop_up.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;this file contains the entire html structure for popup windows.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;portlet.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;this file contains the HTML that wraps every portlet, including the portlet title and portlet-icons.&lt;/p&gt;&lt;br /&gt;&lt;b&gt;Customization of templates:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example portal_normal.vm&lt;/b&gt;&lt;br /&gt;&lt;p&gt;If we want the dock to appear only when the user is signed in then the following changes have to be made in portal_normal.vm&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Replace the following code&lt;/p&gt;&lt;br /&gt;#parse (&quot;$full_templates_path/dock.vm&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;#if ($themeDisplay.isSignedIn())&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        #parse (&quot;$full_templates_path/dock.vm&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#end    &lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/885649479935433598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/creating-new-theme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/885649479935433598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/885649479935433598'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/creating-new-theme.html' title='Creating a new Theme'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-7934282792717143355</id><published>2009-07-21T09:17:00.001+05:30</published><updated>2009-07-21T09:19:08.841+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay Spring Portlet"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Portlet"/><title type='text'>Spring Portlet</title><content type='html'>Step 1:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create a dummy JSP portlet to begin with by using the following command&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create.bat weather &quot;Weather Spring Portlet&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 2: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create a folder &quot;context&quot; under &quot;/docroot/WEB-INF&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create file &quot;weather-portlet.xml&quot; under &quot;context&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;../../dtd/spring-beans.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;bean id=&quot;weatherService&quot; class=&quot;com.sample.weather.WeatherServiceImpl&quot; /&amp;gt;&lt;br /&gt;   &lt;br /&gt;     &amp;lt;bean id=&quot;weatherController&quot;  class=&quot;com.sample.weather.WeatherController&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;property name=&quot;weatherService&quot; ref=&quot;weatherService&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;/bean&amp;gt;  &lt;br /&gt;  &lt;br /&gt;     &amp;lt;bean class=&quot;org.springframework.web.portlet.handler.PortletModeHandlerMapping&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;property name=&quot;portletModeMap&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;               &amp;lt;map&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;entry key=&quot;view&quot; value-ref=&quot;weatherController&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;               &amp;lt;/map&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;bean class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;property name=&quot;viewClass&quot; value=&quot;org.springframework.web.servlet.view.JstlView&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;property name=&quot;prefix&quot; value=&quot;/jsp/&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;          &amp;lt;property name=&quot;suffix&quot; value=&quot;.jsp&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;/bean&amp;gt;     &lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 3: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create file &quot;application.xml&quot; under &quot;context&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!DOCTYPE beans PUBLIC &quot;-//SPRING//DTD BEAN//EN&quot; &quot;../dtd/spring-beans.dtd&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;beans&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;bean id=&quot;weatherService&quot; class=&quot;com.sample.weather.WeatherServiceImpl&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;!-- Default View Resolver --&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;bean id=&quot;viewResolver&quot; class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;property name=&quot;cache&quot; value=&quot;false&quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;property name=&quot;viewClass&quot; value=&quot;org.springframework.web.servlet.view.JstlView&quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;property name=&quot;prefix&quot; value=&quot;/jsp/&quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;property name=&quot;suffix&quot; value=&quot;.jsp&quot;/&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 4: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create file &quot;view.jsp&quot; docroot/jsp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ page contentType=&quot;text/html&quot; isELIgnored=&quot;false&quot; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;table border=&quot;1&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;th&amp;gt;City&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;th&amp;gt;Temperature&amp;lt;/th&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;c:forEach items=&quot;${temperatures}&quot; var=&quot;temperature&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;tr&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;td&amp;gt;${temperature.key}&amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;td&amp;gt;${temperature.value} &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;/tr&amp;gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;/c:forEach&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 5:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create file WeatherController.java  under /docroot/WEB-INF/src/com/sample/weather&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;package com.sample.weather;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import javax.portlet.RenderRequest;&lt;br /&gt;&lt;br /&gt;import javax.portlet.RenderResponse;&lt;br /&gt;&lt;br /&gt;import org.springframework.web.portlet.ModelAndView;&lt;br /&gt;&lt;br /&gt;import org.springframework.web.portlet.mvc.AbstractController;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class WeatherController extends AbstractController {&lt;br /&gt;&lt;br /&gt;    private WeatherService weatherService;&lt;br /&gt;&lt;br /&gt;    public void setWeatherService(WeatherService weatherService) {&lt;br /&gt;&lt;br /&gt;        this.weatherService = weatherService;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public ModelAndView handleRenderRequestInternal(&lt;br /&gt;&lt;br /&gt;            RenderRequest request, RenderResponse response) throws Exception {&lt;br /&gt;&lt;br /&gt;        return new ModelAndView(&quot;view&quot;,&quot;temperatures&quot;, weatherService.getMajorCityTemperatures());&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 6: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create the interface WeatherService.java under /docroot/WEB-INF/src/com/sample/weather&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;package com.sample.weather;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import java.util.Map;&lt;br /&gt;&lt;br /&gt;public interface WeatherService {&lt;br /&gt;&lt;br /&gt;    public Map&amp;lt;String, String&amp;gt; getMajorCityTemperatures();&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 7: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;create the implementation WeatherServiceImpl.java under /docroot/WEB-INF/src/com/sample/weather&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;package com.sample.weather;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;&lt;br /&gt;import java.util.Map;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class WeatherServiceImpl implements WeatherService {&lt;br /&gt;&lt;br /&gt;    public Map&amp;lt;String, String &amp;gt; getMajorCityTemperatures() {&lt;br /&gt;&lt;br /&gt;        Map&amp;lt;String, String &amp;gt; temperatures = new HashMap&amp;lt;String, String&amp;gt;();&lt;br /&gt;&lt;br /&gt;        temperatures.put(&quot;New York&quot;, &quot;6.0&quot;);&lt;br /&gt;&lt;br /&gt;        temperatures.put(&quot;London&quot;, &quot;10.0&quot;);&lt;br /&gt;&lt;br /&gt;        temperatures.put(&quot;Singapore&quot;, &quot;5.0&quot;);&lt;br /&gt;&lt;br /&gt;        return temperatures;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 8:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Modify portlet.xml file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;replace, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet-class&gt;com.sample.jsp.portlet.JSPPortlet&amp;lt;/portlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;with, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet-class&gt;org.springframework.web.portlet.DispatcherPortlet&amp;lt;/portlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;replace, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;name&amp;gt;view-jsp&amp;lt;/name&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;value&amp;gt;/view.jsp&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;/init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;with, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;name&amp;gt;contextConfigLocation&amp;lt;/name&amp;gt;&lt;br /&gt;&lt;br /&gt;            &amp;lt;value&amp;gt;/WEB-INF/context/weather-portlet.xml&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;/init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;----------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;insert &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-mode&amp;gt;view&amp;lt;/portlet-mode&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-mode&amp;gt;help&amp;lt;/portlet-mode&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;inside, &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;supports&gt; elements&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 8: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(insert the below contents into web.xml)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;display-name&amp;gt;Weather Portlet based on Spring&amp;lt;/display-name&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-name&amp;gt;webAppRootKey&amp;lt;/param-name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-value&amp;gt;com.sample.weather&amp;lt;/param-value&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-name&amp;gt;log4jConfigLocation&amp;lt;/param-name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-value&amp;gt;/WEB-INF/classes/log4j.properties&amp;lt;/param-value&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-name&amp;gt;contextConfigLocation&amp;lt;/param-name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;param-value&amp;gt;/WEB-INF/context/application.xml&amp;lt;/param-value&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;listener&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;listener-class&amp;gt;org.springframework.web.util.WebAppRootListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/listener&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;listener&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;listener-class&amp;gt;org.springframework.web.util.Log4jConfigListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/listener&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;listener&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;listener-class&amp;gt;org.springframework.web.context.ContextLoaderListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/listener&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;ViewRendererServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;servlet-class&amp;gt;org.springframework.web.servlet.ViewRendererServlet&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/servlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;ViewRendererServlet&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;url-pattern&amp;gt;/WEB-INF/servlet/view&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;================================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step 9: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Copy the contents of &quot;lib&quot; folder to &quot;WEB-INF/lib&quot;&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/7934282792717143355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/spring-portlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/7934282792717143355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/7934282792717143355'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/spring-portlet.html' title='Spring Portlet'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-7172608448082566363</id><published>2009-07-20T18:06:00.002+05:30</published><updated>2009-07-20T18:10:17.891+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="email validation"/><title type='text'>Email Validation</title><content type='html'>&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function email(str) {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        var at=&quot;@&quot;&lt;br /&gt;&lt;br /&gt;        var dot=&quot;.&quot;&lt;br /&gt;&lt;br /&gt;        var lat=str.indexOf(at)&lt;br /&gt;&lt;br /&gt;        var lstr=str.length&lt;br /&gt;&lt;br /&gt;        var ldot=str.indexOf(dot)&lt;br /&gt;&lt;br /&gt;        if (str.indexOf(at)==-1){&lt;br /&gt;&lt;br /&gt;           alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;           return false&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){&lt;br /&gt;&lt;br /&gt;           alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;           return false&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){&lt;br /&gt;&lt;br /&gt;            alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;            return false&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         if (str.indexOf(at,(lat+1))!=-1){&lt;br /&gt;&lt;br /&gt;            alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;            return false&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){&lt;br /&gt;&lt;br /&gt;            alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;            return false&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;         if (str.indexOf(dot,(lat+2))==-1){&lt;br /&gt;&lt;br /&gt;            alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;            return false&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      &lt;br /&gt;         if (str.indexOf(&quot; &quot;)!=-1){&lt;br /&gt;&lt;br /&gt;            alert(&quot;Invalid E-mail ID&quot;)&lt;br /&gt;&lt;br /&gt;            return false&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;          return true                   &lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/7172608448082566363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/email-validation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/7172608448082566363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/7172608448082566363'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/email-validation.html' title='Email Validation'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-2840194322249003161</id><published>2009-07-20T18:01:00.001+05:30</published><updated>2009-07-20T18:02:38.168+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay Simple Struts Portlet"/><category scheme="http://www.blogger.com/atom/ns#" term="Simple Struts Portlet"/><title type='text'>Simple Struts Portlet</title><content type='html'>1) portlet-ext.xml&lt;br /&gt;&lt;br /&gt;--------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-name&amp;gt;EXT_3&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;display-name&amp;gt;Library Portlet&amp;lt;/display-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-class&amp;gt;com.liferay.portlet.StrutsPortlet&amp;lt;/portlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;name&amp;gt;view-action&amp;lt;/name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;value&amp;gt;/ext/library/view&amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;expiration-cache&amp;gt;0&amp;lt;/expiration-cache&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;supports&amp;gt;   &lt;br /&gt;&lt;br /&gt;        &amp;lt;mime-type&gt;text/html&amp;lt;/mime-type&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/supports&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;resource-bundle&amp;gt;com.liferay.portlet.StrutsResourceBundle&amp;lt;/resource-bundle&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;role-name&amp;gt;power-user&amp;lt;/role-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;role-name&amp;gt;user&amp;lt;/role-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) liferay-portlet-ext.xml&lt;br /&gt;&lt;br /&gt;----------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-name&amp;gt;EXT_3&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;struts-path&amp;gt;ext/library&amp;lt;/struts-path&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;use-default-template&amp;gt;false&amp;lt;/use-default-template&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3) liferay-display.xml&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;add&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet id=&quot;EXT_3&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;inside&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;category name=&quot;category.example&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) struts-config.xml&lt;br /&gt;&lt;br /&gt;----------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;action path=&quot;/ext/library/view&quot; forward=&quot;portlet.ext.library.view&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5) tiles-defs.xml&lt;br /&gt;&lt;br /&gt;-------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;definition name=&quot;portlet.ext.library&quot; extends=&quot;portlet&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;definition name=&quot;portlet.ext.library.view&quot; extends=&quot;portlet.ext.library&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;put name=&quot;portlet_content&quot; value=&quot;/portlet/ext/library/view.jsp&quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/definition&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(create the following two jsp files under &quot;/ext/ext-web/docroot/html/portlet/ext/library&quot;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. init.jsp&lt;br /&gt;&lt;br /&gt;-------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ include file=&quot;/html/portlet/init.jsp&quot; %&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Add commonly used variables and declarations here!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;7. view.jsp&lt;br /&gt;&lt;br /&gt;-------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;%@ include file=&quot;/html/portlet/ext/library/init.jsp&quot; %&amp;gt;&lt;br /&gt;&lt;br /&gt;Simple Struts Portlet!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;8 Language-ext.properties&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add a new entry in the above file,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;javax.portlet.title.EXT_3=Library Portlet&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/2840194322249003161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/simple-struts-portlet.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2840194322249003161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2840194322249003161'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/simple-struts-portlet.html' title='Simple Struts Portlet'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-2679887690698342464</id><published>2009-07-20T17:11:00.001+05:30</published><updated>2009-07-20T17:49:12.759+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Basic JSP Portlet"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay  Basic JSP Portlet"/><title type='text'>Basic JSP Portlet</title><content type='html'>1.Basic JSP Portlet&lt;br /&gt;&lt;br /&gt;~~~~~~~~~~~~~~~~~~~&lt;br /&gt;&lt;br /&gt;[the xml files are located under &quot;ext/ext-web/docroot/WEB-INF&quot;]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.1. portlet-ext.xml&lt;br /&gt;&lt;br /&gt;--------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(insert the below content)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-name&amp;gt;EXT_2&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;display-name&amp;gt;JSP Portlet Introduction&amp;lt;/display-name&amp;gt; &lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-class&amp;gt;com.liferay.util.bridges.jsp.JSPPortlet&amp;lt;/portlet-class&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;name&amp;gt;view-jsp&amp;lt;/name&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;value&amp;gt;/html/portlet/ext/jsp_portlet/view.jsp &amp;lt;/value&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/init-param&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;expiration-cache&amp;gt;0&amp;lt;/expiration-cache&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;supports&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;mime-type&amp;gt;text/html&amp;lt;/mime-type&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/supports&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;resource-bundle&amp;gt;com.liferay.portlet.StrutsResourceBundle&amp;lt;/resource-bundle&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;role-name&amp;gt;power-user &amp;lt;/role-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;role-name&amp;gt;user&amp;lt;/role-name&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.2. liferay-portlet-ext.xml&lt;br /&gt;&lt;br /&gt;----------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(insert the below content)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet-name&amp;gt;EXT_2&amp;lt;/portlet-name&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/portlet&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.3. liferay-display.xml&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(insert the below content)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;category name=&quot;category.example&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;portlet id=&quot;EXT_2&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/category&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.4. view.jsp&lt;br /&gt;&lt;br /&gt;-------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(create this file under &quot;ext/ext-web/docroot/html/portlet/ext/jsp_portlet&quot;&lt;br /&gt;&lt;br /&gt;and enter the below contents)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Welcome to simple Basic JSP Portlet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: after this step do &quot;ant deploy&quot; from &quot;ext-web&quot;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1.5 Language-ext.properties&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(under /ext/ext-impl/src/content)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add two new entries in the above file,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;javax.portlet.title.EXT_2=JSP Portlet&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;category.example=Example&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note: after this step do &quot;ant deploy&quot; from &quot;ext-impl&quot;&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/2679887690698342464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/basic-jsp-portlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2679887690698342464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2679887690698342464'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/basic-jsp-portlet.html' title='Basic JSP Portlet'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-3627428520886240515</id><published>2009-07-20T17:08:00.001+05:30</published><updated>2011-01-20T16:19:13.550+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="dynamic-query"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay-dynamic-query-example"/><title type='text'>Writing Dynamic Query using Hibernate API&#39;s</title><content type='html'>1:&lt;br /&gt;
=======&lt;br /&gt;
in AddBookAction.java:&lt;br /&gt;
&lt;br /&gt;
if (Validator.isNull(cmd)) {&lt;br /&gt;
BookLocalServiceUtil.create(bookTitle);&lt;br /&gt;
} else {&lt;br /&gt;
List&lt;book&gt; results = null;&lt;br /&gt;
if (cmd.equals(&quot;find&quot;)) {&lt;br /&gt;
results = BookLocalServiceUtil.findBooks(bookTitle);&lt;br /&gt;
} else {&lt;br /&gt;
DetachedCriteria dCriteria = DetachedCriteria.forClass(Book.class);               &lt;br /&gt;
dCriteria.add(Restrictions.like(&quot;title&quot;, &quot;%&quot; + bookTitle + &quot;%&quot;));                       &lt;br /&gt;
DynamicQuery dynamicQuery = new DynamicQueryImpl(dCriteria);&lt;br /&gt;
results = (List)BookLocalServiceUtil.dynamicQuery(dynamicQuery);&lt;br /&gt;
}&lt;br /&gt;
req.setAttribute(&quot;results&quot;, results);&lt;br /&gt;
req.setAttribute(&quot;cmd&quot;, cmd);&lt;br /&gt;
}&lt;/book&gt;&lt;br /&gt;
2:&lt;br /&gt;
=======&lt;br /&gt;
in view.jsp&lt;br /&gt;
&lt;br /&gt;
Add for &#39;search&#39; button&lt;br /&gt;
&lt;br /&gt;
&lt;input onclick=&quot;&quot; type=&quot;button&quot; value=&quot;Search&quot; /&gt;findBook(&#39;search&#39;);&quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: the findBook JS function is now accepting a parameter, do changes to this function and also to the &quot;Find Book&quot; button.&lt;br /&gt;
3:&lt;br /&gt;
=======&lt;br /&gt;
&lt;br /&gt;
in Success.jsp update this&lt;br /&gt;
&lt;br /&gt;
if (Validator.isNotNull(cmd)) {&lt;br /&gt;
books = (List)request.getAttribute(&quot;results&quot;);&lt;br /&gt;
} else {&lt;br /&gt;
books = BookLocalServiceUtil.getAllBooks();&lt;br /&gt;
}&lt;br /&gt;
4 :&lt;br /&gt;
========&lt;br /&gt;
ant deploy from ext-impl,&lt;br /&gt;
ant deploy from ext-web,&lt;br /&gt;
restart tomcat</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/3627428520886240515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/writing-dynamic-query-using-hibernate.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/3627428520886240515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/3627428520886240515'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/writing-dynamic-query-using-hibernate.html' title='Writing Dynamic Query using Hibernate API&#39;s'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9045745100636293514.post-2210594038654309322</id><published>2009-07-20T17:03:00.000+05:30</published><updated>2009-07-20T17:06:43.920+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="liferay"/><category scheme="http://www.blogger.com/atom/ns#" term="liferay websites"/><title type='text'>Websites Developed by Liferay</title><content type='html'>&lt;p&gt;&lt;br /&gt;&lt;a href=&quot;http://www.paninicomics.it/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.paninicomics.it/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.connexion.sg/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.connexion.sg/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.axxonet.net/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.axxonet.net/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.myoffice24x7.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.myoffice24x7.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mathforamerica.org/home&quot; target=&quot;_blank&quot;&gt;http://www.mathforamerica.org/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.myjv.com/web/public/home&quot; target=&quot;_blank&quot;&gt;http://www.myjv.com/web/public/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.b-informed.de/web/guest/yapta&quot; target=&quot;_blank&quot;&gt;http://www.b-informed.de/web/guest/yapta&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.toyotahitel.hu/finanszirozas&quot; target=&quot;_blank&quot;&gt;http://www.toyotahitel.hu/finanszirozas&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.afromix.info/web/news/&quot; target=&quot;_blank&quot;&gt;http://www.afromix.info/web/news/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.k4k.hu/nyitolap&quot; target=&quot;_blank&quot;&gt;http://www.k4k.hu/nyitolap&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.euroleasing.hu/index&quot; target=&quot;_blank&quot;&gt;http://www.euroleasing.hu/index&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.unisalento.it/web/guest/home_page&quot; target=&quot;_blank&quot;&gt;http://www.unisalento.it/web/guest/home_page&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mebtel.net/pub/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.mebtel.net/pub/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.netbiscuits.com/home&quot; target=&quot;_blank&quot;&gt;http://www.netbiscuits.com/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.betavine.net/bvportal/home.html&quot; target=&quot;_blank&quot;&gt;http://www.betavine.net/bvportal/home.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.kokkolaweather.fi/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.kokkolaweather.fi/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ruralpovertyportal.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.ruralpovertyportal.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.casagrandeaz.gov/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.casagrandeaz.gov/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.orshalom.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.orshalom.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ntk.hu/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.ntk.hu/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.jsonlive.com/web/guest/jsonhome&quot; target=&quot;_blank&quot;&gt;http://www.jsonlive.com/web/guest/jsonhome&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.soapractice.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.soapractice.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://207.210.217.14/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://207.210.217.14/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cise09.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.cise09.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.xml-intl.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.xml-intl.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.youthpeer.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.youthpeer.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://teaming.dss.state.la.us/web/guest/home&quot; target=&quot;_blank&quot;&gt;https://teaming.dss.state.la.us/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://p-learnet.univ-lille1.fr/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://p-learnet.univ-lille1.fr/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://nfig.hd.free.fr/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://nfig.hd.free.fr/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.lingresource.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.lingresource.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.skillsconnect.gov.sg/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.skillsconnect.gov.sg/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://developer.tandberg.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://developer.tandberg.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://pennstatehershey.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://pennstatehershey.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://learninglab.etwinning.net/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://learninglab.etwinning.net/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://apps.zanox.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://apps.zanox.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.idmunit.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.idmunit.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.amishitayal.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.amishitayal.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.benetton.com/portal/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.benetton.com/portal/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.centurioncargo.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.centurioncargo.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.sidsa.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.sidsa.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.icareus.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.icareus.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mybizsites.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.mybizsites.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://ac.utm.my/web/guest/main&quot; target=&quot;_blank&quot;&gt;http://ac.utm.my/web/guest/main&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.techweb.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.techweb.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mypic32.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.mypic32.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://gmoss.jrc.it/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://gmoss.jrc.it/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.nimbleartists.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.nimbleartists.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://www.skywayperspectives.org/portal/web/guest/home&quot; target=&quot;_blank&quot;&gt;https://www.skywayperspectives.org/portal/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.nimbleartists.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.nimbleartists.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://wi2bc8.bwl.uni-mannheim.de/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://wi2bc8.bwl.uni-mannheim.de/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ignouforum.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.ignouforum.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.newedgegroup.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.newedgegroup.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.geoportal.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.geoportal.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://suhakam.org.my/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://suhakam.org.my/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.etiagarwal.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.etiagarwal.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.bankrakyat.com.my/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.bankrakyat.com.my/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.in4ama.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.in4ama.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.vivektayal.com/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.vivektayal.com/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.uengine.org/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.uengine.org/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.mdks.gov.my/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.mdks.gov.my/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.apolytrosis.gr/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://www.apolytrosis.gr/web/guest/home&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://einstein.mangala-server.com/liferay/web/guest/home&quot; target=&quot;_blank&quot;&gt;http://einstein.mangala-server.com/liferay/web/guest/home&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://liferayexpert.blogspot.com/feeds/2210594038654309322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/websites-developed-by-liferay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2210594038654309322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9045745100636293514/posts/default/2210594038654309322'/><link rel='alternate' type='text/html' href='http://liferayexpert.blogspot.com/2009/07/websites-developed-by-liferay.html' title='Websites Developed by Liferay'/><author><name>Arun</name><uri>http://www.blogger.com/profile/16511059147429749831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>