将日期从 view.jsp 传递到我的 Java Portlet

Passing date from view.jsp to my Java Portlet

我的 view.jsp 上有以下代码:

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />
<portlet:actionURL name="filterByDate" var="activitiesPortlet" />

<form action="${activitiesPortlet}" method="post">
    Start: <input type="date" name="start-date"> 
    End: <input type="date" name="end-date">
    <input type="submit" value="Filter"> 
</form>

我的 Java Portlet 上的功能:

public void filterByDate(ActionRequest request, ActionResponse response) {
    Object startDate = ParamUtil.get(request, "start-date", "");
    System.out.println(startDate.toString());
}

调用该函数是因为系统输出打印了一个空行。但是我无法获取输入日期的值。将 html 输入日期传递到我的 Java Portlet 的正确方法是什么?

除非您没有将 Portlet 的 requires-namespaced-parameters 设置为 false,non-namespaced 参数不会用 ParamUtil.getXX

处理

您可以使用 <aui:input> 字段(它们处理名称空间)或将 Portlet 名称空间(例如 <portlet:namespace>)作为前缀添加到您的输入字段名称中。此外,您可以在您的 Portlet 代码中使用 ParamUtil.getDate 来处理以特定 DateFormat 发送的日期。