Archief - Q: [JSF] Hoe de waarde van <h:inputText> gebruik binnen form?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

yannick

Legacy Member
Goedemiddag,

Ik weet niet of er hier mensen zitten die iets afweten van jsf, maar ik ga het toch maar eens proberen:

Ik zit momenteel vast bij een uitbreiding van een oef ( die ik zelf ff verzonnen heb ). Bij dit deel moet ik een datum veranderen en deze dan volledige checken, ik doe dit met 3 inputText (1 voor dag,maand en jaar) en ik zou deze 3 waarden samen in een inputHidden zetten om er een validator op te laten lopen (zodat ik oa kan checken of ze niet bij februari de 31ste hebben ingevuld ofzo).

Code:
<%--
  Created by IntelliJ IDEA.
  User: Welles
  Date: 3-jun-2007
  Time: 14:52:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
    <html>
      <head><title>Calender</title></head>
      <body><h:form id="form" ><p align="center"><font size="20">Nieuwe ingave</font></p>
      <br />
      <br />
      <h:inputText id="Dag" value="#{kalender.dag}"  /> / <h:inputText id="Maand" value="#{kalender.maand}" /> / <h:inputText id="Jaar" value="#{kalender.jaar}" />
      <h:inputHidden id="datum" value="#{kalender.dag}/#{kalender.maand}/#{kalender.jaar}" validator="#{dagvalidator.validatedag}" ></h:inputHidden>
      <br><h:commandButton value="Set new Data"  action="#{kalender.dag}" /> <a href="faces/kalender.jsp"><input type="button" value="cancel" /></a> <br>
      <h:message for="datum"></h:message>
      </h:form>
      </body>
    </html>
</f:view>

Dit is de code die ik momenteel gebruik, maar deze doet het uiteraard niet omdat hij eerst de validator gaat aanroepen voor dat de nieuwe waarden geset zijn maw hij gebruikt de getallen niet die ingevuld zijn in de inputTexts.

Dus om een lang verhaal kort te maken, hoe kan ik aan de ingevulde cijfers?

mvg
Yannick Wellens

MrO

Legacy Member
Het is beter je validater bij het laatste veld op je scherm te zetten, en niet aan een hidden te hangen.

Voor je validator maak je dan een method en gebruik je de waarden van de andere velden erbij.

yannick

Legacy Member
MrO zei:
Het is beter je validater bij het laatste veld op je scherm te zetten, en niet aan een hidden te hangen.

Voor je validator maak je dan een method en gebruik je de waarden van de andere velden erbij.

Hoe bedoelde juist, dan is de vraag eigelijk nog altijd, hoe graak ik aan die getallen in de andere inputs?

mvg

servi

Legacy Member
Pff, jspf is al een tijdje geleden bij mij, maar als ik het correct herinner, zal je hiervoor een javabean moet aanmaken. Al het volgende dat ik dus zeg is onder voorbehoud en bevat wsch hier en daar een fout.

Wat is een javabean ?
Een java-bean is een speciaal geconstrueerde java-klasse die je kan aanroepen vanuit een jspf pagina, de syntax is als volgt :

Code:
public
Code:
 [B]class[/B] [FONT=mon][COLOR=Magenta][B]Getal [/B][/COLOR][/FONT][B]extends[/B] java.lang.Object {
   [B]private[/B] [B]int[/B] getal;
 
    [B]public[/B] [B]void[/B] set[COLOR=Yellow]LaatsteGetal[/COLOR]([B]int[/B] nummer) {
      getal = nummer % 10;
  }

  [B]public[/B] [B]int[/B] get[COLOR=Yellow]LaatsteGetal[/COLOR]() {
     [B]return[/B] getal;
   }
 
   [B]public[/B] Getal() {
    setLaatsteGetal(423);
   }
 }
de klasse is in het nederlands om duidelijk aan te tonen dat de namen van de functies moeten beginnen met set en get.

Deze java-bean kan je dan als volgt in jspf gebruiken :

Code:
 <jsp:usebean id="[COLOR=SandyBrown]getalBean[/COLOR]" class="be.servi.beans.[COLOR=Magenta]Getal[/COLOR]" />  
<jsp:setProperty name="[COLOR=SandyBrown]getalBean[/COLOR]" name="[COLOR=Yellow]laatsteGetal[/COLOR]" value="948" />
<h:inputText id="getal" value="#{[COLOR=SandyBrown]getalBean[/COLOR].[COLOR=Yellow]laatsteGetal[/COLOR]}"  />

Ik heb in kleur aangeduid welke variabelen overeenkomen met elkaar. let hierbij vooral op voor de gele : dit is geen typfout. bij de jaa-code moet dit beginnen met een hoofdletter ( Laatstegetal ) maar bij de jspf begint dit met een kleine letter ( laatstegetal )

In deze javabean zal het uiteindelijke result op het scherm van de gebruiker 8 zijn.


Dit is een kleine introductie tot javabeans, in een javabean kan je echter om het even welke functie steken en zodus testen wat je wil. Ik stel voor dat je voor meer info eens zoekt op Internet.

yannick

Legacy Member
Merci om da allemaal zo uit te leggen :p.

Maar ik snap al wat ik moet doen met javabeans enzo ;) (heb er zelf al 5 in men project steken :p.

Maar mijn vraag is niet hoe ik 1 inputfield kan valideren, mijn vraag is hoe ik ineens alle inputfields tegelijk kan valideren.

Maw, hoe ik dus in menne jsp aan men ingegeven waardes kan omdeze dan allemaal te valideren en dus ook maar 1 <h:message> te tonen voor al deze eventueel fouten :p

Alvast bedankt ;)
mvg

MrO

Legacy Member
yannick zei:
Hoe bedoelde juist, dan is de vraag eigelijk nog altijd, hoe graak ik aan die getallen in de andere inputs?

mvg

Je input staat in je backing bean.

input1=getWaarde1();
input2=getWaarde2();
...

en dan checken
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan