Mała rzecz a wkurw... zegarek kontra xml [JavaScript i JSF, xhtml]

0

Witam, mam problem nie umiem poprawnie osadzić zegara sesji w znaczniku <c:composition>. Rozwiązałem swój problem na skróty ale są problemy z sensownym wyświetlaniem.

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:f="http://java.sun.com/jsp/jstl/functions"
                    xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core">              
        <ul style="display: inline-block; margin-right: 65%;">
            <h:form>
                <!-- style="background-color: forestgreen"-->
                <c:if test="#{loginBean.checkLaws() != 0}">
                    <li class="inline" style="background-color: forestgreen">
                    <h:commandLink style="color: white" value="Wyloguj" action="#{loginBean.logout()}" disabled="false" />
                    </li>
                </c:if>

                <c:if test="#{loginBean.checkLaws() == 0}">
                    <li class="inline" style="background-color: forestgreen">
                    <h:outputLink style="color: white" value="/System/faces/user/login_success.xhtml" disabled="false" >
                    Zaloguj</h:outputLink></li>
                </c:if>
            </h:form>
        </ul>
        
        <table style="float: right; font-size: 14px;">
            <tr>
                <span style="font-size: 14px; font-family: 'ubuntulight';">
                    Zalogowany jako: <h:outputText style="color: gold" value="#{loginBean.login}" />
                </span>
            </tr>
            <tr>|</tr>
            <c:if test="#{loginBean.checkLaws() != 0}">
            
<tr>
                <span style="font-size: 14px; font-family: 'ubuntulight';"> Czas do końca sesji: 
                    <iframe scrolling="no" src="../resources/js/clock.html"></iframe>
                </span> 
            </tr>
            </c:if>
        </table>
    </ui:composition>

Zegarek jest krzywo i nie mogę np. zrobić przekierowania po zakończeniu sesji.

Sam zegarek działa prawie idealnie, prawie robi tu wielką różnice, czyli np. nie wyświetla "00" a przy 3 minutach coś zaczyna się kopsać

                                        var min=15;
					var sec=60;
					function timeMin() {
						if(min===0) {
							location.href="http://localhost:8080/System/faces/index.xhtml";
						} else {
							min--;
							document.getElementById('min').innerHTML=(min < 15) ? (0 + min) : min;
							setTimeout("timeMin();", 60000);
						}
					}
					function timeSec() {
						if(sec > 54000) {
							location.href="http://localhost:8080/System/faces/index.xhtml";
						} else {
							sec--;
							document.getElementById('sec').innerHTML=(sec < 54000) ? (0 + sec) : sec;
							setTimeout("timeSec();", 1000);
							if (sec === 0) {
                                                            sec = 60;
							}
                                                        if (sec < 10) {
                                                            document.getElementById('sec').innerHTML=(sec < 54000) ? ("0" + sec) : sec;
                                                            
                                                        }
						}
					}

Problem jest nietypowy ale też nie taki złożony, proszę o wskazówki. Dzięki

0

Witam,
Czy świadomie korzystasz ze znaczników z przestrzeni c? Czy nie ma na nie odpowiedników z przestrzeni facelets (ui)? Spróbowałbym pozbyć się c:if i przejść na rendered. Praktycznie w nowych projektach nie musiałem korzystać z JSTL. Jest to IMO wielkie skomplikowanie, bo JSTL nie do końca współgra z cyklem życie JSF i trzeba być ostrożnym. Prawie zawsze można prościej.

Warto przeczytać: http://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense.

1 użytkowników online, w tym zalogowanych: 0, gości: 1