Liferay6.1 配置友好的URL映射
说明:以下内容和官方文档相差不大,如果您英文较好,建议直接去读官方文档,地址是:https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-1/adding-friendly-url-mapping-to-the-portlet。如果没有操作成功,再回来看一看,相信您会有所收获。
如果我们要在liferay中跳转到一个jsp界面。我们可能会这样写
<portlet:renderURL var="editGreetingURL">
<portlet:param name="mvcPath" value="XXX" />
</portlet:renderURL>
<a href="<%= editGreetingURL %>">跳转到jsp界面</a>
其中XXX表示我们要跳转的jsp界面的全路径,比如:/html/portlet3/view.jsp。
这个时候它的url路径是类似于这样的:
这样的路径又臭又长,而且也看不懂什么意思,那么能不能把它变得好看一点呢?肯定是能的,可以把它变成类似于下面的形式:
http://localhost:8080/zh/web/guest/what-we-do/-/portlet3/view
接下来我们一起来把它改造一下:
1. 新建一个Portlet,名称为Portlet3
2. 在liferay-portlet.xml文件中找到Portlet3对应的代码,在 </icon>标签后面并且在<instanceable>标签前面加上以下内容:
<friendly-url-mapper-class>com.liferay.portal.kernel.portlet.DefaultFriendlyURLMapper</friendly-url-mapper-class>
<friendly-url-mapping>portlet3</friendly-url-mapping>
<friendly-url-routes>com/liferay/samples/portlet3-url-routes.xml</friendly-url-routes>
3. 新建文件portlet3-url-routes.xml,全路径为: /WEB-INF/src/com/liferay/samples/portlet3-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>/{mvcPathName}</pattern>
<generated-parameter name="mvcPath">/html/portlet3/{mvcPathName}.jsp</generated-parameter>
</route>
</routes>
注意:
1)文件的全路径要和第二步中<friendly-url-routes>标签的内容对应。
2)把<generated-parameter>标签的内容替换成您要跳转的jsp页面的全路径。以“/”开头,代表当前项目。
4. 重新部署您的portlet,刷新页面,并再次尝试如下的链接是。
http://localhost:8080/zh/web/guest/what-we-do/-/portlet3/view
http://localhost:8080/zh/web/guest/what-we-do/-/portlet3/edit
效果如下

解析:
- http://localhost:8080/zh/web/guest/what-we-do/-/portlet3/view 中的what-we-do要和当前页面对应(空格可以使用-来代替)。portlet3和liferay-portlet.xml中的<friendly-url-mapping>里面的内容对应。Edit要和jsp文件名称对应。
- portlet3-url-routes.xml中类似于RESTFUL风格。
- liferay对于 http://localhost:8080/zh/web/guest/what-we-do/-/portlet3/view 路径的寻找过程如下:
先是what-we-do找到页面,然后寻找liferay-portlet.xml文件中<friendly-url-mapping>是portlet3的元素,找出对应的<friendly-url-routes>标签的内容:com/liferay/samples/portlet3-url-routes.xml,然后寻找对应的xml文件,在把xml文件中的{ mvcPathName }替换成view,然后去寻找/html/portlet3/view.jsp。找到具体的jsp文件。
Liferay6.1 配置友好的URL映射的更多相关文章
- 2-字符串模拟- URL映射
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- CCF 201803-3 URL映射
CCF 201803-3 URL映射 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django. ...
- 201803-3 URL映射
问题描述 URL 映射是诸如 Django.Ruby on Rails 等网页框架 (web frameworks) 的一个重要组件.对于从浏览器发来的 HTTP 请求,URL 映射模块会解析请求中的 ...
- url映射 ccf (Java正则表达式80分解法)
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- 应用springMVC时如果配置URL映射时如下配置
应用springMVC时如果配置URL映射时如下配置 [html] view plaincopy<servlet> <servlet-name>appServlet</s ...
- Django - 将URL映射到视图
URLconf 就像是 Django 所支撑网站的目录.它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表.你就是以这种方式告诉 Django,对于这个 URL 调用这段代码, ...
- ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)
本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...
- urlMappings与URL映射
此配置节的作用就是往Web程序中添加URL的映射,从而达到用户访问映射后的URL(如/Page/AAA)也能访问到源URL(如/Page/PageAAA.aspx)的效果.这也是URL映射本来的作用. ...
- django中“url映射规则”和“服务端响应顺序”
1.django搜索路径 使用 import 语句时,Python 所查找的系统目录清单. 查看方式: import sys print sys.path ...
随机推荐
- HDU 4862 Jump(更多的联合培训学校1)(最小费用最大流)
职务地址:pid=4862">HDU4862 最小费用流做的还是太少. 建图想不出来. . . 直接引用官方题解的话吧... 最小K路径覆盖的模型.用费用流或者KM算法解决,构造二部图 ...
- Qt 格式转换问题 记录(好多方法)
用Qt经常头痛于一些格式不能通用的问题 在此记录备用 1 (20120112)QString转为Char * QString *str; char *a; str="hello word ! ...
- matplotlib tricks(关闭坐标刻度、坐标轴不可见)
plt.gray():只有黑白两色,没有中间的渐进色 1. 关闭坐标刻度(plt 与 AxesSubplot) plt plt.xticks([]) plt.yticks([]) 关闭坐标轴: plt ...
- theano 安装杂记
0. MinGW MinGW:Windows 下的 g++等linux 下的编译工具: Anaconda 下 MinGW 的安装(进行 windows cmd 界面):conda install mi ...
- python 教程 第十五章、 结构布局
第十五章. 结构布局 #!/usr/bin/env python #(1)起始行 "this is a module" #(2)模块文档 import sys #(3)模块导入 d ...
- python 教程 第九章、 类与面向对象
第九章. 类与面向对象 1) 类 基本类/超类/父类被导出类或子类继承. Inheritance继承 Inheritance is based on attribute lookup in Py ...
- 【转】CefSharp 与 js 相互调用
转自CSDN博客博主ghui,虽然博主说要经过他同意才能转,我只是做笔记用,没做他用,所以请博主理解,在此感谢博主! 一. CefSharp调用 js CefSharp.WinForms.Chromi ...
- 仿真算法数据结构与算法 C++实现
模拟算法:仿真的全过程,通过改变数学模型参数,进一步观察状态更改这些参数发生变化正当程序. 算法思路:利用随机函数来模拟不可预测发生在自然界.(srand() 和 rand()函数生成一个随机数) 模 ...
- WPF 绑定父类属性
原文:WPF 绑定父类属性 1.绑定父控件的属性. <ContextMenu x:Key="ContextMenuColoum"> <MenuItem Heade ...
- 更新EF(更新表 添加表…)