Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 1.500 pregleda

Najnovija ↓

dinamicko ubacivanje jsf tagova kroz ajax 18.02.2010. u 14:52 · pre 203 meseca #1
E ovako, zeleo bih da klikom na neko dugme ispod njega iscrta h:inputText, pomocu js/ajax.
Prvo sam probao nesto ovako:
Code:

<script type="text/javascript">
                function getContent(){
                    
                    var zip=document.getElementById("zip").id.toString();
                    new Ajax.Request("zip.ajax",
                        {      method: "get",
                           parameters: "zip=" + zip,
                           onComplete: stateChange
                        });
                }
                
function stateChange(asyncRequest){ //rezultat je vracen prema json notaciji
                     document.getElementById("output").innerHTML=asyncRequest.responseText;
                }
</script>

        </head>
        <body>
            <div class="center">
                <h:commandButton id="zip" type="button" value="zip" onclick="getContent()"  />

            </div>
            <br/>
            <div id="output" class="watch"></div> <br/>


dok servlet AjaxServlet izgleda ovako

Code:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        response.setStatus(HttpServletResponse.SC_OK);
        PrintWriter out = response.getWriter();
        System.out.println("AjaxServlet");
        try {
            String zip="<h:inputText value='dsadsa'/>";
            out.write(zip);
        } finally {
            out.close();
        }
    } 

i nece da ispise nista, e sad ako bi se ovaj string zip zamenio sa onim uobicajnim <input type = "text.... onda izbaci to input polje.

Onda sam probao na drgi nacim koristeci onaj Ajax4JSF:
Code:

<h:form>
            <div class='center'>
                <a4j:commandButton action="#{Dodavac.dodaj}"
                                   value = "radi"
                                   reRender = "output"/>
            </div>
            </h:form>
                <br>

               <h:outputLabel value="#{Dodavac.kod}" id="output" />

, gde je ovaj Dodavac neki mali bean koji samo ima jedan string kod i sa metodom dodaj: kod = "<h:inputText value='dsadsa'/>"
E ni to i ne radi, nego mi ispise samo <h:inputText value='dsadsa'/>, znaci samo kao text, a ne kao formu. Probao sam i sa drugim h: i f: tagovima i nista.
Ako neko ima ideju kako da mi se pomocu ajaxa na ove ili neki drugi nacin ispisuju jsf forme, bio bih mu jako zahvalan.
Re: dinamicko ubacivanje jsf tagova kroz ajax 05.03.2010. u 19:08 · pre 202 meseca #2
Nisam neki Ajax guru, ali za ovo postoji prilicno jednostavno resenje (cini mi se): koristi "rendered" svojstvo. Prosledjujes mu "true" ili "false" (moze i iz nekog objekta, sto sigurno znas) i na taj nacin govoris serveru da li da ga prikaze. Sad, nisam siguran da li ga kontrola "outputText" ima, ali mozes sigurno da je uvijes u jedan "subview" i onda da kontrolises da li ce se on prikazivati ili ne. Nadam se da nisam bio skroz nerazumljiv... :)
Potpis
"Takozvani praktični ljudi bili bi korisni i zasluživali bi svaku pohvalu i poštovanje kad od te svoje praktičnosti ne bi hteli da naprave smisao života i razlog svoga opstanka, opravdanje za podjarmljivanje i terorisanje svih onih koji su lišeni toga praktičnog smisla, ali zato stvoreni za druge, možda više i bolje podvige."

Ivo Andric
Re: dinamicko ubacivanje jsf tagova kroz ajax 05.03.2010. u 21:10 · pre 202 meseca #3
Mislim ako ti je u servletu response.setContentType("text/html;charset=UTF-8");

ne mozes drugo ocekivati drugo sem text-a ili

ako ubacis string sa servleta u neki html FORM mozes da bacis html edit-e,button-e,checkboxove itd..

Nikad nisam probao jsf tagove preko ajax varijante, probaj prvo da dobijes html form elemente, pa onda predji na tagove, ako je moguce..
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme