埃洛在那里,
有谁知道在Liferay portlet中创建标签的简单方法?正在阅读它,我似乎无法找到任何关于如何轻松地做到这一点的建议.
如果有经验的人可以给我一些指示,那就太棒了.
谢谢!
这是我在Liferay Portal 6.0.6中运行portlet时得到的堆栈跟踪.
有人知道发生了什么事吗?
12:40:00,146 ERROR [PortletServlet:96] javax.portlet.PortletException: javax.servlet.ServletException: javax.servlet.jsp
.JspException: com.liferay.taglib.aui.LayoutTag cannot be cast to javax.servlet.jsp.tagext.Tag
javax.portlet.PortletException: javax.servlet.ServletException: javax.servlet.jsp.JspException: com.liferay.taglib.aui.L
ayoutTag cannot be cast to javax.servlet.jsp.tagext.Tag
at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:110)
at org.springframework.web.portlet.DispatcherPortlet.doRender(DispatcherPortlet.java:1137)
at org.springframework.web.portlet.DispatcherPortlet.render(DispatcherPortlet.java:1092)
at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:755)
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)
at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723)
at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425)
at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1440)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at … 我正在一个项目中工作,我们需要在Liferay门户中为用户管理创建第一步.我需要知道如何根据用户拥有的角色隐藏社区内的门户网站页面/ portlet.
我可以在社区内使用团队吗?我应该使用Liferay UM API还是可以配置portlet或页面,以便它仅对某些团队/角色可见.
任何帮助表示赞赏.谢谢.
我想在门户网站服务器启动时指定portlet的初始化顺序.
可能吗?
嗨我开始lern liferay并有一个问题.我无法从jsp发送portlet.
在jsp我有:
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<portlet:defineObjects />
<div>
<form action="HelloWorld" method="post" enctype="multipart/form-data">
<div id="up">
<input id="fileUpload1" type="button" name="filename" value="??????">
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
在portlet中:
public class HelloWorld extends GenericPortlet {
protected void doGet(ActionRequest request,
ActionResponse response) throws ServletException, IOException
{
// reading the user input
//String color= request.getParameter("color");
HttpServletResponse servletResponse = PortalUtil.getHttpServletResponse(response);
PrintWriter out = servletResponse.getWriter();
out.println("<HTML>");
out.println("<HEAD <TITLE> Upload4 </TITLE> </HEAD>");
out.println("<BODY>");
out.println("<FORM …Run Code Online (Sandbox Code Playgroud) 我正在尝试为<portlet:resourceURL />的参数赋值
<portlet:resourceURL id="<%=Constants.Color%>" var="<%=Constants.Color%>"/>
Run Code Online (Sandbox Code Playgroud)
此代码不起作用.
public class Constants {
public static final String Color = "Red";
}
Run Code Online (Sandbox Code Playgroud) 我在Liferay中制作了一个显示表单的portlet.我想在提交后处理表单数据,但数据在某处"消失".
这是我在jsp中的表单代码:
<portlet:actionURL windowState="normal" var="filterURL">
</portlet:actionURL>
<form action="<portlet:actionURL />" method="post">
Industry: <input type="text" name="<portlet:namespace />industry" value="<%= industryFilter %>"/>
<input type="submit" value="Filter" />
</form>
Run Code Online (Sandbox Code Playgroud)
数据应该传递给我的portlet类,但不会.这是我的班级代码:
public void processAction(
ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
String industryFilter = actionRequest.getParameter("industry");
if(industryFilter == null) {
industryFilter = "no-param";
}
actionResponse.setRenderParameter("industry", industryFilter);
super.processAction(actionRequest, actionResponse);
}
Run Code Online (Sandbox Code Playgroud)
该类旨在将数据传递回jsp.该setRenderParameter()方法工作正常,因为在jsp中我可以使用读取值request.getParameter("industry");但是,它总是返回"no-param",这意味着actionRequest.getParameter()返回null.
所以,似乎我的processAction方法被正确调用,但它没有收到表单数据.错误在哪里,我错了什么?
更新:
我将portlet下载到我的本地计算机,部署到本地演示Liferay安装,它工作正常!所以代码应该没问题,它必须是一些服务器设置/问题.我发现在Chrome开发人员工具的网络选项卡中,本地服务器只有一个状态为200的POST调用,而在远程服务器上有一个POST,其中302暂时移动,GET 200具有相同的URL!它会导致问题吗?
我有下面的portlet view.xhtml:
<?xml version="1.0"?>
<f:view xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:body>
<h:form>
<h:commandButton value="TESTButton" action="#{navigationViewBean.submit}" />
<h:outputText value="TESTGetter: #{navigationViewBean.testField}" />
</h:form>
</h:body>
</f:view>
Run Code Online (Sandbox Code Playgroud)
而这个托管bean:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name = "navigationViewBean")
@RequestScoped
public class NavigationViewBean {
private String testField;
public boolean lol = false;
public void submit() {
System.out.print("TEST BUTTON INVOKED");
}
public String getTestField() {
System.out.print("TEST GETTER INVOKEDx");
return testField;
}
public void setTestField(String testField) {
this.testField = testField;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试做的唯一一件事就是调用一个方法来打印我的控制台.问题在于,无论我做什么,都不会调用action方法.正确调用getter方法.
我究竟做错了什么?
我想在Liferay中使用插件(portlet,hook或theme)时运行一些代码.
我找不到像任何启动监听器的liferay-plugin-package.xml,liferay-portlet.xml,liferay-hook.xml或liferay-look-and-feel.xml.
我对Spring MVC很新,我有一个问题要问你.
我知道标签<mvc:annotation-driven />在servlet配置中处理注释,例如@ Controller,@ RequestMapping,但是我正在使用portlet,我很好奇这个注释在这里是如何工作的?
谢谢!