我正在使用liferay-ui datepicker。 当我的页面加载日期是datepicker中的当前日期时,当前日期的数据将加载到页面上。 我想要做的是允许用户查看数据,以便当用户选择任何其他日期时,显示所选日期的数据。 我该怎么办呢? 我应该刷新整个页面吗?怎么样? 或者我应该使用ajax?我该怎么办?如果要使用ajax我应该如何传递数据?
编辑:
我会详细解释我的问题。我正在使用liferay:ui:date。我希望用户从中选择一个日期。一旦用户选择了日期,我想将日期传递给custom-sql。我在同一个jsp中调用finder函数如下:
List<Object[]> ObjdisplayAttListName = AttendanceLocalServiceUtil.findAttendance(currentdate);
我想在上面的函数中传递用户选择的日期。 现在我正在做的只是在上面的代码行中传递当前日期。我希望通过用户选择的日期。
答案 0 :(得分:0)
就个人而言,我更喜欢使用liferay-ui:输入日期。只需确保在控制器类中保留日期或日历对象
<portlet:actionURL var="setDate" name="setDate" >
<portlet:param name="jspPage" value="/html/yourPage.jsp" />
</portlet:actionURL>
<aui:form action="<%= setDate%>" method="post" enctype="multipart/form-data" >
<%
Date date = (Date)renderRequest.getAttribute("_a_date");// Get your Date from the controller
Calendar cal = CalendarFactoryUtil.getCalendar();
cal.setTime(new Date()); // create with current date if this form is presented for the 1st time
if(Validator.isNotNull(date)){
cal.setTime(date); // else use the Date you want to display
}
%>
<liferay-ui:input-date
yearRangeStart="1970"
yearRangeEnd="2100"
formName="pickedDate"
dayParam="dd"
monthParam="mm"
yearParam="yy"
dayValue="<%= cal.get(Calendar.DATE) %>"
monthValue="<%= cal.get(Calendar.MONTH) %>"
yearValue="<%= cal.get(Calendar.YEAR) %>"
/>
<aui:button name="setDateBtn" value="Submit that date" type="submit"/>
</aui:form>
回到控制器..
public void setDate(ActionRequest actionRequest,
ActionResponse actionResponse) throws IOException, PortletException {
UploadPortletRequest queryRequest = PortalUtil.getUploadPortletRequest(actionRequest);
int dd = ParamUtil.getInteger(queryRequest, "dd");
int mm = ParamUtil.getInteger(queryRequest, "mm");
int yy = ParamUtil.getInteger(queryRequest, "yy");
String date_format = "yyyy/MM/dd";
SimpleDateFormat sdf = new SimpleDateFormat(date_format);
GregorianCalendar gc = new GregorianCalendar(yy, mm, dd);
Date date = gc.getTime(); // Keep this Date and reload the page sending this Date in an actionRequest param
actionRequest.setAttribute("_a_date", date );
答案 1 :(得分:0)
我认为你应该选择 AJAX 。使用日期选择器选择日期时拨打ajax电话 并在 serveResource 方法中获取该日期。根据您选择的日期获取数据,并将数据以所需格式即JSON 传递到表示层。
收集数据并显示。多数民众赞成:)
如果您有问题请告诉我!!