2013-02-14 76 views
2

我的问题是我想为每个博客文章添加'.html'扩展名。例如,现在我有一个博客文章url'http://www.indu.com/blog/-/blogs/creating-a-custom-portlet-in-liferay',我想要的是'http://www.indu.com/blog/-/blogs/creating-a-custom-portlet-in-liferay.html'在liferay的博客帖子页面添加扩展

如果有人能帮忙,我将不胜感激?

+1

像Advaita指出,我很想知道你为什么要这样做?对于在url结尾添加.html绝对没有影响。 – 2013-02-14 16:02:13

+0

杰罗姆它的客户要求在所有页面中都有.html扩展名。 – 2013-02-15 04:36:37

回答

3

我想知道你为什么要这样做。

无论如何,我认为你可以更改字段BlogsEntry并将.html附加到字符串中。无论何时创建或更新博客,都可以使用服务包装挂钩将.html附加到urlTitle

或者你甚至可以用一个ModelListener,如果它存在BlogsEntry钩用onCreate & onUpdate方法来更新博客的urlTitle

编辑

urlTitle字段存在于BlogsEntry表。

也可以使用Java以下方法访问此:

BlogsEntry blog = BlogsEntryLocalServiceUtil.getBlogsEntry(90989); // retrieves the blog-entry 

String blogUrlTitle = blog.getUrlTitle(); 

blog.setUrlTitle(blogUrlTitle + ".html"); // this would set the string 

您可以为blogUrlTitle所以检查你不用反复.html附加到字符串:

if (!blogUrlTitle.contains(".html")) { // append only if the title does not contain `.html` 
    blog.setUrlTitle(blogUrlTitle + ".html"); 
} 

您可以按照自己喜欢的方式来优化代码,以上只是一条指引。作为一个侧面提示,我会一直试图与客户端推荐他们为什么需要某些东西,这不仅有助于抵御不良变更请求,还有助于为客户提供一种替代方案(这是对像我们这样的开发人员减免征税;-))。在大多数情况下,这有助于更好地了解客户的业务&提供更好的回报。

+0

+1有效解决方案的不错选择 – 2013-02-14 16:00:27

+1

感谢您的帮助Advaita,但您能否指导我在哪里可以找到BlogsEntry的urlTitle字段? – 2013-02-15 04:35:52

+0

@GarthHuff编辑了答案,请看看。 – 2013-02-15 07:14:28