Today we will discuss about Adding Struts action in Liferay by using Hook.Before reading this blog you must read my previous blog on Override Struts Action by Hook in Liferay. Adding Struts action is similar to overriding Struts Action but the difference is :-
For Overriding we extends BaseStrutsPortletAction Class.
For Adding we extends BaseStrutsAction Class.
So lets start step by step:-
Step 1:-Create Liferay hook project
File-->New-->Liferay Plugin Project-->Provide name-->Select hook in plugin type-->Finish.
You can see snapshot in my previous article (Step 1) Portal Properties Hook in Liferay.
Step 2:-Create Action Class
Create a package com.aditya.demo inside src and than create a class as:-
AddingStrutsAction.java
Explanation:-
In this class we extend BaseStrutsAction class and just provide path of jsp.
Step 3:-Create entry in liferay-hook.xml
Provide the entry of your action class in liferay-hook.xml:-
liferay-hook.xml
Explanation:-
In this xml we provide the path ie URL and implementing class. For hitting this URL we have to append c as:
http://localhost:8080/c/portal/liferayiseasy
Step 4:-Create required jsp
Create a jsp hook for the jsp as we return our path from action class as "/portal/message.jsp".
So create a structure in docroot as:-
docroot\custom_jsps\html\portal\message.jsp
Our message.jsp contain just one line:-
message.jsp
and provide entry in liferay-hook.xml as:-
<custom-jsp-dir>/custom_jsps</custom-jsp-dir>
when you deploy your hook this jsp is available in
"\tomcat-7.0.42\webapps\ROOT\html\portal".
That's it when you hit "http://localhost:8080/c/portal/liferayiseasy" liferay show login page provide credential and you can see
message .jsp.When you hit the URL and you don't want to provide the credential just make the URL public by property hook.
Step 5:-Make URL to public
Just create Portal Property Hook and override auth.public.paths as:-
auth.public.paths=/portal/liferayiseasy
Now finally your liferay-hook.xml become :-
liferay-hook.xml
For detail of how to create Portal Properties hook you may follow my previous blog Portal Property Hook in Liferay
That's it hit "http://localhost:8080/c/portal/liferayiseasy" and you see output as:-
Welcome here Aditya Bhardwaj
Project Structure
You can Download Source code from Adding Struts Action Hook in Liferay
Hope this will Help....