私はサービス名とjspの日付は60日以内ですか?
が、私はこのコードをwirteサービスの日付を表示するには、テーブルを持っており、それが正常に動作します:
<display:table name="${serviceList}" class="its" uid="row"
sort="list" pagesize="10" requestURI="serviceMaint_view" export="false" defaultsort="2" defaultorder="descending" id="serviceTable">
<display:column style="width: 30%" title="Service Name" property="serviceName" />
<display:column style="width: 10%" title="Service Date" property="serviceDate" format="{0,date,dd-MM-yyyy}" />
</display:table>
は、私は、サービスの日付が60日以内であることを示すために別の列を作りますたとえば、サービス日付が60日以内の場合、列には「使用中のサービス」が表示され、サービス日付が60日を超えると、列には何も表示されません(列は空のままです)。
私はこの記事を読んでいますHow to add 30 days in a timestamp in jstl。 <display:column>
で解決策を適用しますが、動作しません(下のコードが表示されます)。私はおそらくいくつかのtaglibが欠けていると思うので、私はそれらをコードに追加しますが、それでも動作しません。
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ page language="java" import="java.util.*,common.utility.*"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.*"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Calendar" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<display:table name="${serviceList}" class="its" uid="row"
sort="list" pagesize="10" requestURI="serviceMaint_view" export="false" defaultsort="2" defaultorder="descending" id="serviceTable">
<display:column style="width: 30%" title="Service Name" property="serviceName" />
<display:column style="width: 10%" title="Service Date" property="serviceDate" format="{0,date,dd-MM-yyyy}" />
<display:column>
<%
Date date= serviceDate; //serviceDate cannot be resolved to a variable
Calendar cal = Calendar.getInstance();
cal.setTime (date);
cal.add (Calendar.DATE, 60);
date = cal.getTime(); //Type mismatch: cannot convert from java.util.Date to java.sql.Date
%>
<c:if test="${serviceDate ge date}">
<c:out value = "Service in use" />
</c:if>
</display:column>
<!--also try to use <s:if> but still get error -->
<display:column>
<%
Date date= serviceDate; //serviceDate cannot be resolved to a variable
Calendar cal = Calendar.getInstance();
cal.setTime (date);
cal.add (Calendar.DATE, 60);
date = cal.getTime(); //Type mismatch: cannot convert from java.util.Date
to java.sql.Date
%>
<s:if tests='%{#serviceDate ge date}'>
Service in use
</s:if>
</display:column>
</display:table>
投稿が表示されているので、コントローラにそれを実行させることが記載されています。 (私はどのポストを忘れて申し訳ありません)コントローラーの場合は、インジケーターがデータベースに格納する必要があることを意味しますか?データベースに保存すると、レコードは静的になり、データベースで変更しないかぎり変更できないと思いますので、プログラムはどのようにして60日以内にサービス日付を知っていますか?
<display:column>
に60日以内の日付を示す方法はありませんか? あなたはそれについて考えていますか?ありがとうございました。