Java 显示WAR名称和jsp URI的Liferay链接

Java 显示WAR名称和jsp URI的Liferay链接,java,jsp,liferay,Java,Jsp,Liferay,我设置了如下按钮: <portlet:renderURL var="editTeamURL"> <portlet:param name="jspPage" value="/html/myteam/editTeam.jsp" /> <!-- <portlet:param name="jspPage" value="/html/myteam/editTeam.jsp" /> --> </portlet:ren

我设置了如下按钮:

<portlet:renderURL var="editTeamURL">
        <portlet:param name="jspPage" value="/html/myteam/editTeam.jsp" />
<!--        <portlet:param name="jspPage" value="/html/myteam/editTeam.jsp" /> -->
    </portlet:renderURL>
    <aui:layout cssClass="buttons-wrapper">
        <aui:column columnWidth="100">
            <aui:a cssClass="btn" id="UpdateRole" name="UpdateRole" href="<%= editTeamURL %>"><%=LanguageUtil.get(pageContext, "edit-team") %></aui:a>
        </aui:column>
    </aui:layout>
http://localhost:8080/group/invitations?p_p_id=myteam_WAR_MYPORTLET&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=1&_myteam_WAR_MYPORTLET_jspPage=%2Fhtml%2Fmyteam%2FeditTeam.jsp
如何从该链接隐藏WAR名称和jsp URI?我担心这可能是一个安全漏洞,并且容易受到某种形式的攻击(同时,也会使URL看起来很难看)

编辑:这就是我所做的:

<portlet>
    <portlet-name>my-team</portlet-name>
    <icon>/icon.png</icon>

    <friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
    <friendly-url-mapping>team</friendly-url-mapping>
    <friendly-url-routes>com/myapp/routes.xml</friendly-url-routes>

    <header-portlet-css>/css/main.css</header-portlet-css>
    <footer-portlet-javascript>
        /js/main.js
    </footer-portlet-javascript>
    <css-class-wrapper>my-team-portlet</css-class-wrapper>
</portlet>

我的团队
/icon.png
com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper
团队
com/myapp/routes.xml
/css/main.css
/js/main.js
我的团队portlet
route.xml

<?xml version="1.0"?>
<!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>/edit</pattern>
        <implicit-parameter name="jspPage">
            /html/myteam/editTeam.jsp
        </implicit-parameter>
    </route>
</routes>

/编辑
/html/myteam/editTeam.jsp

您自己几乎已经解决了这个问题。一旦您在portlet中设置了一个友好的url映射器,所有链接都将使用您在映射器中定义的模式呈现,从而隐藏war的名称和目的地


因此,请仔细阅读文档丰富的友好url功能。

您没有指定正在使用的
Liferay
的版本。然而,使用
友好URL
似乎可以解决您的问题。这是一位官员

从文件中引用:

该特性称为友好URL映射。它从URL中删除不必要的参数,并允许您将重要参数放在URL路径中,而不是放在查询字符串中。要添加此功能,请首先编辑liferay-portlet.xml,并直接在后面和前面添加以下行(删除换行符):

将以下内容放入新文件中(删除{mvcPathName}.jsp之后的换行符):


/{mvcPathName}
/{mvcPathName}.jsp\
重新部署portlet,刷新页面,然后再次尝试单击任一链接


这听起来像是解决办法,但我无法让它发挥作用。我正在使用Liferay 6.2。此外,这似乎改变了链接后点击的网址,但我想链接是友好的网址already@MichelReap不幸的是,我不是Liferay专家,我只是使用了一段时间,并注意到
友好的URL
。很抱歉,在这个问题上我帮不了你更多。
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>my-greeting</friendly-url-mapping>
<friendly-url-routes>com/liferay/samples/my-greeting-friendly-url-routes.xml</friendly-url-routes>
my-greeting-portlet/docroot/WEB-INF/src/com/liferay/samples/my-greeting-friendly-url-routes.xml
<?xml version="1.0"?>
<!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>/{mvcPathName}</pattern>
       <generated-parameter name="mvcPath">/{mvcPathName}.jsp\
       </generated-parameter>
   </route>
</routes>