我正在使用portlet,并在Liferay的wiki上处理示例:https://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/writing-the-my-greeting-portl-4
我在处理表单后将portlet重定向回init jsp时遇到了一些问题。我的Java类是:
import java.io.IOException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
import com.liferay.util.bridges.mvc.MVCPortlet;
public class Directory extends MVCPortlet {
@Override
public void processAction(
ActionRequest actionRequest, ActionResponse actionResponse)
throws IOException, PortletException {
PortletPreferences prefs = actionRequest.getPreferences();
String greeting = actionRequest.getParameter("greeting");
if (greeting != null) {
prefs.setValue("greeting", greeting);
prefs.store();
}
super.processAction(actionRequest, actionResponse);
}
}
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page import="javax.portlet.PortletPreferences" %>
<portlet:defineObjects />
<%
PortletPreferences prefs = renderRequest.getPreferences();
String greeting = (String)prefs.getValue(
"greeting", "Hello! Welcome to our portal.");
%>
<p><%= greeting %></p>
<portlet:renderURL var="editGreetingURL">
<portlet:param name="mvcPath" value="/edit.jsp" />
</portlet:renderURL>
<p><a href="<%= editGreetingURL %>">Edit greeting</a></p>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<%@ page import="com.liferay.portal.kernel.util.ParamUtil" %>
<%@ page import="com.liferay.portal.kernel.util.Validator" %>
<%@ page import="javax.portlet.PortletPreferences" %>
<portlet:defineObjects />
<%
PortletPreferences prefs = renderRequest.getPreferences();
String greeting = (String)prefs.getValue(
"greeting", "Hello! Welcome to our portal.");
%>
<portlet:actionURL var="editGreetingURL">
<portlet:param name="mvcPath" value="/edit.jsp" />
</portlet:actionURL>
<aui:form action="<%= editGreetingURL %>" method="post">
<aui:input label="greeting" name="greeting" type="text
value="<%=greeting%>
<aui:button type="submit" />
</aui:form>
<portlet:renderURL var="viewGreetingURL">
<portlet:param name="mvcPath" value="/view.jsp" />
</portlet:renderURL>
<p><a href="<%= viewGreetingURL %>">← Back</a></p>
在edit.jsp的表单submit中,它应该重新呈现该页面。当我只是使用portlet:renderURL而不是portlet:actionUrl时,它可以正确地执行,但是actionUrl不会重新呈现。教程说它应该再次呈现edit.jsp,所以我不确定我遗漏了什么。注意:它正在正确保存我的所有参数。
根据JSR 286(又名Portlet规范2.0),Plt.11.1.1.2:
portlet容器不能将操作或事件请求中接收的参数传播到portlet的后续呈现请求。
这是当用户单击浏览器页面上的Submit按钮时发生的情况:
对不起,关于这个主题有很多话要说,希望我写的能对你有用!
问题内容: 有没有一种方法可以避免在刷新php页面时重新处理表单?我想防止重新刷新表单中带有插入功能的php文件的链接。例如,我正在处理用户在每页顶部写的一系列便笺以获取新便笺。除了创建带有标头功能的独立php文件外,还有另一种方法吗? 问题答案: 使用Post-Redirect-Get模式。 接受发布请求 处理数据 发出重定向响应 接受获取请求 发出200回应 如果您需要显示提交的数据中的数据,
更新:我发布了两个更简洁的代码片段,说明了混乱的根源: https://gist.github.com/mttkay/9fbb0ddf72f471465afc https://gist.github.com/mttkay/5dc9bde1006b70e1e8ba
前言 在消息处理后,会有内存回收的过程this.accumulator.deallocate(batch); 调用deallocate()
我正在使用react和Next.js进行API请求(从搜索栏),并在主页上显示电影列表,每个搜索结果都将带我到一个不同的页面,该页面将显示与该电影相关的数据。每次刷新details页面时,由于api请求错误导致查询结果丢失,使用Backwards/Forward按钮也会丢失搜索结果。 index.js details.js 此外,我还实现了一个Searchbar组件,在index.js中使用了它,
为什么在刷新页面后重新提交 去http://qass.im/message-envelope/ 并上传任何文件,但仅限文本"gif","jpeg","jpg","png","zip","pdf","docx","rar","txt" 上传后点击F5按钮刷新页面 现在重新提交并重新上传文件! 为什么呢? 我想在上传文件后禁用重新提交而不使用jquery
我的模型包含大量的代理。但是,我希望部分删除/删除一些在运行时完成工作的代理,以便释放计算内存、加快模型执行并避免OOM。 context.remove()是否真的永久消除/杀死代理(对象)?此操作后是否释放内存?如果不是,正确的过程是什么?