はい、改善できます。
たとえば、JSPでのレンダリングURLの場合、ポートレットでユーザーを表示するには、次のようにします。
<portlet:renderURL windowState="maximized" var="myURL">
<portlet:param name="resourcePrimKey" value="<%=user.getUserId() %>" />
<portlet:param name="jspPage" value="/html/viewMyUser.jsp" />
</portlet:renderURL>
次のように、friendlier-friendly-url-routes.xmlにフレンドリURLルートを設定できます。
<route>
<pattern>/satportlet/{resourcePrimKey:\d+}/view</pattern>
<!-- \d+ is the place-holder for the userID, i.e. 5 in the friendly URL below -->
<implicit-parameter name="p_p_lifecycle">0</implicit-parameter>
<!-- Implicit parameters are not shown in the route pattern, here 0,1 etc are the phases of the portlet 0=render, 1=action etc -->
<implicit-parameter name="p_p_state">maximized</implicit-parameter>
<implicit-parameter name="jspPage">/html/viewMyUser.jsp</implicit-parameter>
</route>
したがって、生成されるフレンドリURLは次のようになります。
http://localhost:8086/web/guest/home/-/Gasd/satportlet/5/view
生成されたURLを見ると、次のような<route>要素を使用できます(JSPで使用している<portlet:actionURL>または<portlet:renderURL>が指定されている場合は、 <route>要素を作成します)。これが完全に正しいかどうかはわかりませんが、次のようになります。
<route>
<pattern>/satportlet/{p_auth}/{[p_p_id]_javax.portlet.action:\d+}</pattern>
<implicit-parameter name="p_p_lifecycle">1</implicit-parameter>
</route>
したがって、上記の構成では、わかりやすいURLが次のように生成されるはずです(ここでも十分ではありません) 。
http://localhost:8086/web/guest/home/-/Gasd/satportlet/EFAy7VSA/addBook
また、liferayのソースコードと* -friendly-url-routes.xmlファイルをチェックして、理解を深めることもできます。
この少なくとも、フレンドリURLがliferayでどのように機能するかについての手がかりが得られることを願っています。