portlet是否可以读取其周围页面的请求参数?
例如,portlet所在页面的URL是http://example.com/mypage?foo=bar 是否可以从该页面上的portlet中读取"foo"参数?
Portlet Container是Liferay 5.2.5.
在今天的采访中,我提到我在一个portlet中做了一些jsf工作.面试官询问了portlet-bridge的具体细节.我从来没有调查过这么多,只是使用它因为我被告知它会使jsf在portlet中工作.我真正可以说的是,它允许请求以jsf理解的方式从门户网站发送到jsf,并使其发挥得很好.
portlet-bridge究竟做了什么?
如何使我的portlet在liferay实例中不可实现.我在论坛上看过它,但没有提到如何做到这一点.
我在欢迎页面上有一个天气portlet,用户可以配置portlet并选择他的城市.是否可以将用户信息存储在portlet首选项中,以便每个用户都拥有一个存储的城市?或者,在不开发自己的(持久)服务的情况下,存储用户portlet信息的标准工作流程是什么?
谢谢
在Liferay 6.0插件MVC portlet中,如何从portlet类访问portlet配置?
请注意,"配置"我的意思是特定于portlet的一个实例,并且是值不是用户特定的; 如果管理员设置了portlet配置值,它应该对所有用户生效.
例如:
public class MyPortlet extends MVCPortlet
{
@Override
public void doView(RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException
{
// Fill in the blank; what goes here?
String configValue = ?;
renderRequest.setAttribute("some-key", configValue);
super.doView(renderRequest, renderResponse);
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道它们之间的区别
PortalUtil.getOriginalServletRequest(portletRequest)
Run Code Online (Sandbox Code Playgroud)
和
PortalUtil.getHttpServletRequest(portletRequest).
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的自定义portlet的conf中添加一个选项卡,除了本机导入/导出和权限.
如下图所示:http://imageshack.us/photo/my-images/716/sampledn.png/
此选项卡必须允许更改定义某个变量的conf.properties中的参数值.
我怎样才能做到这一点?
问候.
我想在ajax的liferay中得到一些帮助.现在我从我的view.jsp页面调用ajax方法来提交一些数据.
以下是我使用的示例代码view.jsp:
<%@ include file="/init.jsp"%>
<portlet:actionURL name="AddTest" var="add1" />
<portlet:resourceURL id="AddTest" var="AddTest"></portlet:resourceURL>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
function addToDo(addToDo){
var todo =document.getElementById('toDo').value;
$.ajax({
url :addToDo,
data: {"todo":todo,"CMD":"addToDo"},
type: "GET",
dataType: "text",
success: function(data) {
$("#toDoList").html(data);
}
});
}
</script>
</head>
<body>
<portlet:resourceURL var="addToDo" id="addToDo"></portlet:resourceURL>
<form>
<input type="text" name="toDo" id="toDo">
<button name="Add" type="button" onclick="addToDo('<%=addToDo%>')">Add</button>
<div id="toDoList">
</div>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在我的portlet.java班级中,有一个方法由这个ajax调用调用:
@Override
public void serveResource(ResourceRequest request, ResourceResponse response){
if(request.getParameter("CMD").equals("addToDo")) {
System.out.println("came here for …Run Code Online (Sandbox Code Playgroud) 我已经开始使用Liferay开发portlet,我想展示一个(或更多)具有指定结构的Web内容文章.
例如,假设我有一个结构"A",那么如何才能获得使用此结构创建的最后一篇Web内容文章?
该文章介绍了如何得到一个物品tag,但不能用structure.
谢谢
在我的6.1.0门户实例上使用6.1.0 SDK-Portlet,它使用ServiceBuilder和DL-Api这一行:
DynamicQuery query = DynamicQueryFactoryUtil.forClass(DLFileEntry.class)
Run Code Online (Sandbox Code Playgroud)
产生此错误:
16:46:46,319 ERROR [DynamicQueryFactoryImpl:83] Unable find model
com.liferay.portlet.documentlibrary.model.impl.DLFileEntryImpl
java.lang.ClassNotFoundException: com.liferay.portlet.documentlibrary.model.impl.DLFileEntryImpl
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl.getImplClass(DynamicQueryFactoryImpl.java:78)
at com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl.getImplClass(DynamicQueryFactoryImpl.java:59)
at com.liferay.portal.dao.orm.hibernate.DynamicQueryFactoryImpl.forClass(DynamicQueryFactoryImpl.java:33)
at com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil.forClass(DynamicQueryFactoryUtil.java:23)
at de.acocon.liferay.service.service.bean.DocLibBean.findByExtraSettings(DocLibBean.java:403)
at de.acocon.liferay.service.service.bean.DocLibBean.findByIdeaId(DocLibBean.java:395)
at de.acocon.liferay.service.service.bean.DocLibBean.fillUploadedFileListByIdea(DocLibBean.java:417)
at de.acocon.liferay.service.service.bean.IdeaController.init(IdeaController.java:149)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.faces.vendor.WebContainerInjectionProvider.invokeAnnotatedMethod(WebContainerInjectionProvider.java:117)
at com.sun.faces.vendor.WebContainerInjectionProvider.invokePostConstruct(WebContainerInjectionProvider.java:99)
at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:223)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:105)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
at org.jboss.el.parser.AstValue.getValue(AstValue.java:63)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:224)
at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:85)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)
at …Run Code Online (Sandbox Code Playgroud)