我在JSP中声明了这些方法如下:
<%!
String getAmPm(Date d){
String am_pm = "AM";
String hour = String.valueOf(d.getHours());
if (hour.length() == 1) {
hour = "0" + hour;
}
String hr_ampm = HarfDate.getHourAmPm(hour);
hour = hr_ampm.split(",")[0];
am_pm = hr_ampm.split(",")[1];
return am_pm;
}
%>
上面的方法采用日期对象并根据应用日期的确切时间返回AM或PM,如果我们使用scriptlet,我们将按如下方式调用它:
if(getAmPm(((PublishedExamsVO)publishedExams[i]).getTo()).equals("AM"))
注意:(PublishedExamsVO)publishedExams[i]).getTo()
返回日期对象
我想使用JSTL调用这些方法,是否有任何关于这样做的想法?我已经看过fmt:formatDate
,但我认为它不会拯救我
答案 0 :(得分:0)
您试图在视图中放置太多逻辑,而不是使用Java和封装来为视图提供行为。只需将以下方法添加到PublishedExamsVO类,并从您的视图中使用它:
public boolean isMorning() {
...
}
...
<c:if test="${publishedExams.morning}">
...
</c:if>
答案 1 :(得分:0)
您可以使用fmt:formatDate
格式"a"
获取AM / PM指标:
<fmt:formaDate pattern="a" value="${yourDateHere}" />
要测试返回值,必须先将其分配给变量:
<c:set var="period">
<fmt:formaDate pattern="a" value="${yourDateHere}" />
</c:set>
<c:if test="${period eq 'AM'}">xxxx</c:set>
答案 2 :(得分:0)
如果需要为JSP提供一些可重用的代码,请考虑函数而不是scriptlet。查看此blog post作为简单示例。