Today we will discuss detail explanation of portlet URLs in Liferay. Here we create a portlet and on jsp we create a actionURL and a renderURL and than check the URL . So lets start this step by step:-
Step 1:-Create Liferay Project and Portlet
Just create a project and then create a portlet in it. My project name is urltesting-portlet and portlet name is url-demo .
Step 2:-Change view.jsp
Now open view.jsp and paste this:-
view.jsp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> | |
<portlet:defineObjects /> | |
<!-- Action URLs --> | |
<portlet:actionURL var="firstActionURL" name="firstMethod" /> | |
<!-- Render URLs --> | |
<portlet:renderURL var="firstRenderURL"> | |
<portlet:param name="mvcPath" value="/html/urldemo/display.jsp"/> | |
</portlet:renderURL> | |
<h2>First Form</h2> | |
<form action="<%=firstActionURL%>" method="POST"> | |
First :-<input type="text" name="first"> | |
<input type="submit" value="SUBMIT"> | |
</form> | |
<br> | |
<a href="<%= firstRenderURL%>">Render URL</a> |
Explanation:-
Here i create a actionURL that will hit firstMethod in the Controller. I also create renderURL will go to display.jsp.
Step 3:-Change the Controller
Now open your java file and paste this:-
URLDemo.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.demo; | |
import java.io.IOException; | |
import javax.portlet.ActionRequest; | |
import javax.portlet.ActionResponse; | |
import javax.portlet.PortletException; | |
import com.liferay.portal.kernel.util.ParamUtil; | |
import com.liferay.util.bridges.mvc.MVCPortlet; | |
public class URLDemo extends MVCPortlet { | |
public void firstMethod(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException, PortletException { | |
String first = ParamUtil.getString(actionRequest, "first"); | |
System.out.println("First=>"+first); | |
} | |
} |
Step 4:-Check ActionURL
Deploy your portlet and add to page.Here my page name is welcome and layout of page is 1 Column.Now i fill the value and click on submit Button.
Now check the browser URL:-
http://localhost:8080/web/guest/welcome?p_auth=Pa1eFFwX& p_p_id=urldemo_WAR_urltestingportlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1 &p_p_col_count=1 &_urldemo_WAR_urltestingportlet _javax.portlet.action=firstMethod
Let me explain this URL:-
1)http://localhost:8080 :- Protocol+Host Address +Port
2)/web :- Because i added the portlet on Public page if it is private page then it become /group .
3)/guest :- Guest Community(Liferay Community).
4)/welcome :- Page name is welcome.
5)p_auth :- Authorization token generated by Liferay for Security.
6)p_p_id :- You can read more about portlet Id here.
7)p_p_lifecycle :- This is lifecycle of portlet .
- 0: render phase or render URL
- 1: action phase or action URL
- 2: server resource URL
8)p_p_state :- Window State of Portlet.
9)p_p_mode :- portlet mode either view/edit/help
10)p_p_col_id :- Id of the column where our portlet is placed.
11)p_p_col_count :- Number of column in current layout.
12)p_p_id_javax.portlet.action :- portletid with action parameter.
Note:- If the portlet is instanceable then URL is:-
http://localhost:8080/web/guest/welcome?p_auth=Pa1eFFwX& p_p_id=urldemo_WAR_urltestingportlet_INSTANCE_TFuo5RrOTrfg&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1& _urldemo_WAR_urltestingportlet_INSTANCE_ TFuo5RrOTrfg_javax.portlet.action=firstMethod
Here only one parameter is extra ie instance id.
Step 5:-Check RenderURL
Now click on Render URL link:-
Now Check the URL:-
http://localhost:8080/web/guest/welcome?p_p_id= urldemo_WAR_urltestingportlet&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_urldemo_WAR_urltestingportlet_mvcPath=%2Fhtml%2Furldemo%2Fdisplay.jsp
Note:- If the portlet is instanceable then URL is:-
http://localhost:8080/web/guest/welcome?p_p_id= urldemo_WAR_urltestingportlet_INSTANCE_TFuo5RrOTrfg&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=2 &_urldemo_ WAR_ urltestingportlet_INSTANCE_TFuo5RrOTrfg_mvcPath=%2Fhtml%2Furldemo%2Fdisplay.jsp
Hope this will Help....
Related Post:-
Related Post:-
Developing a MVCPortlet with Multiple Actions in Liferay
Categorization in web content
Fetch Web Contents Programmatically
Get Journal Article Fields Programmatically
Embedding a Portlet in Web Content
Creating tabs using Web Content
Embedding a Web Content/Journal Article in a Portlet
Index Post Processor Hook
Categorization in web content
Fetch Web Contents Programmatically
Get Journal Article Fields Programmatically
Embedding a Portlet in Web Content
Creating tabs using Web Content
Embedding a Web Content/Journal Article in a Portlet
Index Post Processor Hook
No comments:
Post a Comment