JSF za 1 razem przeładowuje zamiast ajaxa

JSF za 1 razem przeładowuje zamiast ajaxa
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1683
0

Cześć.
Załączam mały JSFowy projekt w zipie.
mam taki problem, że za pierwszym razem kiedy wejdę na stronę.
akcja na przycisku przeładowuje mi stronę zamiast użyć ajaxa.
po tym już wszystko działa dobrze.

aplikację można łatwo zdeployować na tomcat'cie.

załączam xhtml'ki może ktoś od razu zauważy błąd:

index.xhtml

Kopiuj
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets">

<h:head>
    <h:outputScript library="primefaces" name="jquery/jquery.js"/>
</h:head>
<h:body>
    <h:outputStylesheet name="css/style.css"/>

    <h:form id="glownaForma">
        <ui:fragment rendered="#{true}">
            <ui:include src="tabelkaZButtonem.xhtml">
                <ui:param name="formName" value="glownaForma"/>
            </ui:include>
        </ui:fragment>
    </h:form>

</h:body>
</html>

tabelkaZButtonem.xhtml

Kopiuj
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

    <p:panel header="Dane w tabelce">
        <ui:include src="tabelka.xhtml"/>
        <p:commandButton value="Pokaż wiadomość"
                         onclick="PF('dialogWiadomosci').show()"
                         rendered="true"
                         update="dialogWiadomosciForm"
                         process="@this"/>
    </p:panel>
</ui:composition>

tabelka.xhtml

Kopiuj
<ui:composition id="uc1864" xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

    <p:dataTable id="tabelka"
                 value="#{controller.records}"
                 var="rekordy"
                 selectionMode="single"
                 selection="#{controller.record}"
                 rowKey="#{rekordy.id}"
                 paginatorTemplate="{PreviousPageLink} {PageLinks} {NextPageLink}"
                 rows="5"
                 paginator="true"
                 paginatorPosition="bottom">

        <p:ajax event="rowSelect" process="@this" update=":#{formName}:dialogWiadomosciForm:wiadomosc"/>

        <p:column headerText="ID Rekordu">
            <h:outputText value="#{rekordy.id}">
            </h:outputText>
        </p:column>

        <p:column headerText="Opis">
            <p:outputLabel value="#{rekordy.description}"/>
        </p:column>
    </p:dataTable>


    <h:form id="dialogWiadomosciForm">
        <p:dialog header="Wiadomość z rekordu" widgetVar="dialogWiadomosci"
                  modal="true" width="80%" appendTo="@(body)"
                  resizable="false"
                  dynamic="true"
                  rendered="#{controller.record != null}">

            <p:panel id="wiadomosc">
                <h:outputText value="#{controller.record.message}"/>
            </p:panel>
        </p:dialog>

    </h:form>


</ui:composition>

czytam o ajaxie, process i update i nie rozumiem templatek dlaczego tak się dzieje :| . ktoś coś?

SP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
1

Uruchomiłem ten kod, wyrzuciłem to co średnio mi się podobało, czyli process="@this" z obydwu plików i rendered="#{controller.record != null}" . Wygląda na to, że ta ostatnia linia psuje tego ajaxa

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1683
0

ta tak udało mi się to ogarnąć dzięki. opiszę potem jak do tego dojść i jak to rozwiązać profesjonalnie. rendered , @szarotka miała rację

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.