# jsf bean erstellen die mir die aktuelle uhrzeit ausgibt als xhtml



## gehdecke (15. Jan 2013)

Hallo ich wollte gerne eine JSF Seite (Bean ) erstellen die mir wenn ich Sie aufrufe die Uhrzeit ausgibt.


```
@ManagedBean
@SessionScoped
public class TimeBean  {

    Date date=new Date();

        public Date getDate() {
        return date;
```

Html Datei

```
<div id="time"></div>
        <button onclick="getTime();">Aktualisieren</button>
        <script type="text/javascript" src="script.js"></script>
```
 und hier die .js datei


```
function getXmlHttpRequestObject()
{
    if(window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        alert('Ajax funktioniert bei Ihnen nicht!');
    }
}

function getTime()
{
    if(req.readyState == 4 || req.readyState == 0)
    {
        req.open('GET', '/TimeBean.java', true);
        req.setRequestHeader("Content-Type","text/plain");
        req.onreadystatechange = setMessage;
        req.send(null);
    }
}

function setMessage()
{
    if(req.readyState == 4)
    {
        var response = eval('(' + req.responseText+ ')');
        document.getElementById('time').innerHTML = response.time;
    }
}
```

kann mich mal jemand anschupsen 

Dat klappt bei mir aber leider nicht


----------



## gehdecke (16. Jan 2013)

so ich habe nun soweit das ich die Uhrzeit sehen kann. Wie kann ich nun aber ein JS in einer xhtml seite mit AJAX aufrufen. Der JavaScript liegt aber an einer ander Stelle.


```
<script type="text/javascript" src="script.js"></script>
    <h:outputText id="Uhrzeitanzeige" value="Uhrzeit ist: #{testBean.time}"/>
    <div id="time1"></div>
    <body>
```

kann mir jemand helfen?

der Script soll immer ausgeführt werden wenn ich die Seite lade oder aktuallisiere.

Danke sehrrrrrrrrrrrrrrrrrrrrr


----------



## JimPanse (16. Jan 2013)

JSF-AJAX

Wenn immer der aktuelle Zeitstempel angezeigt werden soll wenn die Seite aufgerufen wird musst du einfach den Scope der Bean von Session auf View oder Request ändern.

PS: Schöner ist natürlich:


```
<h:outputText value="#{testBean.date}">
	     <f:convertDateTime pattern="dd.MM.yyyy" />
	</h:outputText>
```


----------



## gehdecke (16. Jan 2013)

Ja danke. Ich habe aber nun zur Übung eine DateBean gebaut und ein Uhr.js sowie eine Uhr.xhtml nun will ich einfach noch die Uhr.xhtml in ein div laden hast du da eine Idee? ich will es ja lernen aber danke für den Vorschlag


----------



## Sym (16. Jan 2013)

Du hast für den Code von JimPanse ein eigenes Template gebaut? Das ist kaum notwendig.

Wenn Du ein wenig Code zeigst, kann man Dir vielleicht mehr helfen.


----------



## sence (17. Jan 2013)

Einbinden eines Templates (xhtml Datei)

```
<ui:include src="/path/to/uhr.xhtml"/>
```


----------

