03. december 2005 - 21:33
Der er
43 kommentarer
Speciel løkke i JSTL, hvordan?
Det drejer sig simpelthen om at lave en løkke på, der skal løbe nøjagtig 13 gange. Undervejs i disse genneløb, skal jeg matche noget tekst med et datostempel (fx '10:00' matche i '2005-11-05 10:00' (her er der match)). Hvis ikke så viser jeg bare 10:00 som ledigt. Jeg har meget meget lidt erfaring med jstl, hvis der er nogen, der ved noget eller har et eksempel, så meldt gerne tilbage her.
Annonceindlæg fra Context&
03. december 2005 - 21:34
#1
Er der nogen der har nogle forslag?
03. december 2005 - 21:39
#2
<c:forEach var="i" start="1" end="13"> ... </c:forEach> må være selve løkken
03. december 2005 - 21:42
#3
Ok, vi arbejder os stille og roligt derhenne af :o)
03. december 2005 - 21:44
#4
aaahhh den bliver svær....lad mig lige tænke mig om....
03. december 2005 - 21:56
#5
Hele udfordringen er at jeg har en hel masse tider startende fra: 07:00 08:00 ... 20:00 Jeg skal løbe en løkke igennem fra kl 7 - 20 :o). For hver af disse tider skal jeg matche den igennem arrays af af tidstempler. Så det vil betyder en løkke til at løbe fra kl.07:00 til kl.20:00 og en løkke indeni der simpelhen mather tiden med tidstemplerne i et array af dem. Hvon gør man det???
03. december 2005 - 22:00
#6
i jstl? Løkke i løkke....
03. december 2005 - 22:03
#7
hm jeg prøver lige at brygge på noget
03. december 2005 - 22:11
#8
det lyder godt... jeg prøver også lige, selvom jeg tror du er hurigst.
03. december 2005 - 22:32
#9
<%@ taglib prefix="c" uri="
http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.*" %>
<%
// just for test
List data = new ArrayList();
data.add("16:00");
data.add("17:00");
data.add("18:00");
request.setAttribute("data", data);
%>
<c:forEach var="i" begin="7" end="20">
<c:set var="ti" value="${i}:00"/>
<c:out value="${ti}"/>
<c:forEach var="t" items="${data}">
<c:if test="${ti==t}">
****
</c:if>
</c:forEach>
<br>
</c:forEach>
03. december 2005 - 22:37
#10
7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 15:00 16:00 **** 17:00 **** 18:00 **** 19:00 20:00
03. december 2005 - 22:38
#11
ohhh virker det?
03. december 2005 - 22:38
#12
hmmm det ser ud som om noget af det er jsp?
03. december 2005 - 22:39
#13
nååh det bare dit arraylist der er i jsp, fair nok.
03. december 2005 - 22:42
#14
Prøver liiiiige.
03. december 2005 - 22:43
#15
Ahhh næsten ved at være der. Hvordan får jeg min <fmt:formatDate value="${inspections.startTime}" pattern="HH:mm" /> ind istedet for dit t i <c:if test="${ti==t}"> ?????
03. december 2005 - 22:44
#16
Ellers skal denne ${inspections.startTime} formateres i JSTL til HH:mm.....men how?
03. december 2005 - 22:46
#17
det virker min ArrayList er bare en til test din ArrayList kommer sikkert et helt andset sted fra men bare du får den gemt i request så er det OK
03. december 2005 - 22:46
#18
...men hvad med det sidste???
03. december 2005 - 22:51
#19
nu mistede jeg tråden
03. december 2005 - 23:05
#20
Det jeg prøver er følgende: <c:forEach var="i" begin="7" end="20"> <c:set var="ti" value="${i}:00"/> <c:forEach var="inspections" items="${requestScope.arrayOfInspections}"> <c:if test="${ti==${inspections.startTime}}"> **** </c:if> </c:forEach> </c:forEach>
03. december 2005 - 23:06
#21
${inspections.startTime} er et timestamp, så det skal jeg jo klippe ned til jeg bare har tiden fx. 12:00 som vi så kan lave en if på.
03. december 2005 - 23:07
#22
Håber du er tilbage på tråden :o)
03. december 2005 - 23:08
#23
prøv: <c:if test="${ti==inspections.startTime}">
03. december 2005 - 23:10
#24
vi prøver......
03. december 2005 - 23:26
#25
Er der ikke noget der hedder <c:else></c:else>???? <c:forEach var="i" begin="7" end="20"> <c:set var="ti" value="${i}:00"/> <c:forEach var="inspections" items="${requestScope.arrayOfInspections}"> <c:if test="${ti==${inspections.startTime}}"> **** </c:if> <c:else> #### </c:else> </c:forEach> </c:forEach> Det kan jeg nemlig ikke....
03. december 2005 - 23:29
#26
nej så skal du bruge choose, when og otherwise
03. december 2005 - 23:29
#27
03. december 2005 - 23:30
#28
okay, prøver det...
03. december 2005 - 23:33
#29
Koden blev til det her....men det virker ikke helt..... <c:choose> <c:when test="${!empty requestScope.arrayOfInspections}"> <c:forEach var="i" begin="7" end="20"> <c:set var="ti" value="${i}:00"/> <c:forEach var="inspections" items="${requestScope.arrayOfInspections}"> <c:choose> <c:when test="${ti==inspections.startTime}"> <tr> <td width="15" align="left" class="timeslotText">${ti}</td> <td width="200" class="inspectionTimeSlotReserved"> </td> <td> </td> </tr> </c:when> <c:otherwise> <tr> <td width="15" align="left" class="timeslotText">${ti}</td> <td width="200" class="inspectionTimeSlotFree"> </td> <td><a href="#" onclick="doInsertTimeSlot('${ti}');" title="Send inspection request"><-</a></td> </tr> </c:otherwise> </c:choose> </c:forEach> </c:forEach> </c:when> </c:choose>
03. december 2005 - 23:35
#30
Jeg tror ikke denne her virker -> <c:when test="${ti==inspections.startTime}"> da ti jo fx er (10:00) og inspections.startTime} er et tidstempel (2005-11-05 10:00)
03. december 2005 - 23:38
#31
Jeg paster lige koden ind igen, da det første blev grimt pastet ind. <c:choose> <c:when test="${!empty requestScope.arrayOfInspections}"> <c:forEach var="i" begin="7" end="20"> <c:set var="ti" value="${i}:00"/> <c:forEach var="inspections" items="${requestScope.arrayOfInspections}"> <c:choose> <c:when test="${ti==inspections.startTime}"> <tr> <td width="15" align="left" class="timeslotText">${ti}</td> <td width="200" class="inspectionTimeSlotReserved"> </td> <td> </td> </tr> </c:when> <c:otherwise> <tr> <td width="15" align="left" class="timeslotText">${ti}</td> <td width="200" class="inspectionTimeSlotFree"> </td> <td><a href="#" onclick="doInsertTimeSlot('${ti}');" title="Send inspection request"><-</a></td> </tr> </c:otherwise> </c:choose> </c:forEach> </c:forEach> </c:when> </c:choose>
03. december 2005 - 23:47
#32
prøv og formater din start tid til en String med en df.format inden du sammenligner
03. december 2005 - 23:51
#33
Jeg tror ikke jeg må så meget i min mainkode. Jeg skal 'bare' ha' {$inspections.startTime} klippet lidt til kun at have tiden i sig. Man må kunne formatere en dato i jstl...
03. december 2005 - 23:54
#34
kan jeg ikke på en eller anden måde bruge <fmt:formatDate "${inspections.startTime}" pattern="HH:mm" /> inde i min <c:when test="${ti==inspections.startTime}"> ??? Kan man ikke erklære en variable af en eller anden art og bruge den ?????
04. december 2005 - 00:02
#35
Hvordan negerer man <c:if test="${reserved==ti}"> ?????
04. december 2005 - 00:17
#36
Nåh ja...<c:if test="${!reserved==ti}">
04. december 2005 - 00:20
#37
prøv med !=
04. december 2005 - 00:27
#38
Kan du ikke prøve at smide tidsstempler istedet for tider i dit arrayList, og prøve at få det til at virke????
<%@ taglib prefix="c" uri="
http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.*" %>
<%
// just for test
List data = new ArrayList();
data.add("2005-11-05 16:00");
data.add("2005-11-05 17:00");
data.add("2005-11-05 18:00");
request.setAttribute("data", data);
%>
<c:forEach var="i" begin="7" end="20">
<c:set var="ti" value="${i}:00"/>
<c:out value="${ti}"/>
<c:forEach var="t" items="${data}">
<c:if test="${ti==t}">
****
</c:if>
</c:forEach>
<br>
</c:forEach>
04. december 2005 - 00:52
#39
hvad siger du til:
<%@ taglib prefix="c" uri="
http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="
http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ page import="java.util.*" %>
<%
// just for test
List data = new ArrayList();
data.add("2005-11-05 16:00");
data.add("2005-11-05 17:00");
data.add("2005-11-05 18:00");
request.setAttribute("data", data);
%>
<c:forEach var="i" begin="7" end="20">
<c:set var="ti" value=" ${i}:00"/>
<c:out value="${ti}"/>
<c:forEach var="t" items="${data}">
<c:if test="${fn:endsWith(t,ti)}">
****
</c:if>
</c:forEach>
<br>
</c:forEach>
04. december 2005 - 00:52
#40
der er ikke ret mange prædefinerede funktioner i EL men du kan lavce dine egne, så kan du få det præcis som du vil
04. december 2005 - 01:02
#41
Vi prøver liiiige....
31. december 2005 - 14:13
#42
virkede det ?
26. november 2007 - 21:57
#43
??
Kurser inden for grundlæggende programmering