CUSTOMIZING JSP FILES
- You can use Hooks to customize existing JSP files in the portal and to create new ones.
- Overriding JSPs in the portal:
- Changes are reversed when undeployed.
- Copies existing xxx.jsp to xxx.portal.jsp
- Use liferay-util:buffer to minimize upgrade headaches when customizing a JSP.
- Certain portlets have *-ext.jsp patterns already.
OVERRIDE CREATE ACCOUNT
- Guests need to click the Create Account link in the Sign In portlet to create a portal account.
- We'll overwrite the create_account.jsp with a customer field asking about their interest in becoming an astronaut.
- Go to File → New → Liferay Hook.
- Select the training for the Hook plugin project.
- Check the Custom JSPs check box.
- Click Next.
- Accept the default path for the Custom JSP folder.
- Click the Add from Liferay... button to override an existing JSP page.
- In the search box, begin typing the word create and select create_account.jsp when it appears in the results window. You can also browse to html → portlet → login → create_account.jsp.
- Click Ok, then Finish.
- Browse to your Tomcat bundle too see what happened to the original file:
- C:\liferay\bundles\liferay-portal-[version]\tomcat-[version]\webapps\ROOT\html\portlet\login
- Now, create_account.training-hook.jsp has been added into the folder, in replace of create_account.portal.jsp.
- Why?
- When you undeploy your hook, the original file will be restored.
- You can include the original file from yours using the following code:
<%@ taglib uri="http://liferay.com/tld/util" prefix="liferay-util" %>
<liferay-util:include page="/html/portlet/navigation/view.jsp" useCustomPage="false" />
- Liferay Developer Studio has created a copy of the create_account.jsp in the project docroot/custom_jsps/html/portlet/login/ directory. Open the newly created jsp file:
- Search and find the keyword <aui:input model="<%= User.class %>" name="emailAddress" />
- Add the following code after that line, before the closing tag </aui:column>
<span style="color:#ff0000;font-style: italic;"><</span>div class="exp-ctrl-holder"> <liferay-ui:custom-attribute className="<%= User.class.getName() %>" classPK="<%= 0 %>" editable="<%= true %>" label="<%= true %>" name="interested-in-becoming-an-astronaut" /> </div><span style="color:#ff0000;font-style: italic;"> </span>
- Save the file and wait for the hook to be redeployed.
- Log out if you are currently logged in.
- Click the Create Account link in the Sign In portlet.
- You should see the new custom fields under Email Address.