2013-02-22 72 views
0

我从一个JSP导航到另一个JSP如图的Liferay:用Liferay的友好的URL路径XML文件查询

view.jsp的

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<portlet:defineObjects /> 
<portlet:renderURL var="test"> 
<portlet:param name="jspPage" value="/html/sai/edit.jsp" /> 
</portlet:renderURL> 
<p><a href="<%= test %>">Go to Edit Page</a></p> 

edit.jsp文件

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> 
<portlet:defineObjects /> 
<portlet:renderURL var="test"> 
<portlet:param name="jspPage" value="/html/sai/view.jsp" /> 
</portlet:renderURL> 
<p><a href="<%= test %>">Go to View Page</a></p> 

目前我有这个友好的url routes.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE routes PUBLIC "-//Liferay//DTD Friendly URL Routes 6.1.0//EN" "http://www.liferay.com/dtd/liferay-friendly-url-routes_6_1_0.dtd"> 

<routes> 
    <route> 
    <pattern>/</pattern> 
    <ignored-parameter name="p_p_lifecycle" /> 
    <ignored-parameter name="p_p_state" /> 
    <ignored-parameter name="p_p_mode" /> 
</route> 
</routes> 

有了这个URL被显示如

http://localhost:8080/web/guest/what-we-do/-/sai/?_sai_WAR_Saiportlet_jspPage=%2Fhtml%2Fsai%2Fedit.jsp 

你能告诉我应该是什么样的内部

编辑部分

我可以给的值p_p_lifecycle ,p_p_state,p_p_mode以下面的方式??

<route> 
    <pattern>/{jspPageName}</pattern> 
    <generated-parameter name="jspPage">/html/sai/{jspPageName}.jsp</generated-parameter> 
    <implicit-parameter name="p_p_lifecycle">1</implicit-parameter> 
    <implicit-parameter name="p_p_state">Baba</implicit-parameter> 
    <implicit-parameter name="p_p_mode">Baba</implicit-parameter> 
    </route> 

回答

1

如何像:

<route> 
    <pattern>/{jspPageName}</pattern> 
    <generated-parameter name="jspPage">/html/sai/{jspPageName}.jsp</generated-parameter> 
    <ignored-parameter name="p_p_lifecycle" /> 
    <ignored-parameter name="p_p_state" /> 
    <ignored-parameter name="p_p_mode" /> 
</route> 

然后将生成的URL应该是这样的:

http://localhost:8080/web/guest/what-we-do/-/sai/edit 

更多的例子,请参阅http://www.liferay.com/web/connor.mckay/blog/-/blogs/introducing-friendly-url-routes

+0

作品完美,非常感谢你,我还有一个问题,请参阅问题中编辑过的部分, – Pawan 2013-02-22 06:05:06

+0

好听!对于编辑的部分,听起来默认情况下将使用隐式参数,但如果URL指定了不同的值,则整个规则将不适用 - 例如。如果p_p_mode不是巴巴,但设置为德德,那么该URL将不是友好的URL,而是长参数URL。也许你想尝试重写参数呢?这听起来像它会一直使用您的给定值而不是参数值。 – tbigby 2013-02-22 07:07:45

+0

另外 - 该示例页面表明p_p_ *参数将被自动隐藏:_DefaultFriendlyURLMapper会自动隐藏所有这些内容,并且只有在设置为默认值以外的值时才会显示它们。例如,如果p_p_mode设置为“normal”,它将被隐藏,但如果设置为“maximized”,则会显示。这个系统可以让你的网址更干净而不会破坏功能。所以你甚至可能根本不需要把它们放进去?我想试试看,看看有什么作用。 – tbigby 2013-02-22 07:10:01