Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    conoscitori di java server faces in sala? :stordito:

    Ciao,
    ho un problema, sto cercando di utilizare un valuechangelistener su una lista di valori (banalmente true e false) ma non funziona se cambio il valore ricarica la pagina senza cambiare la seconda lista. Lo stesso codice utilizzato pero' con una checkbox funziona normalmente.

    Il comportamento è il seguente: se la checkbox e selezionata (oppure come in questo caso la listbox e su true) camba i valori contenuti nella seconda lista.

    Dov'e' che sbaglio?

    codice:
    file .jsf
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <html>
      <head><title>jsf 2</title></head>
      <body>
      <f:view>
    
    
      <h:form id="form2">
          <h:selectOneMenu valueChangeListener="#{ResumeBean.changeColorMode}"
    onclick="submit()"
    immediate="true" validator="#{ResumeBean.isUsingColorNames}">
              <f:selectItem itemLabel="Colore esadecimale" itemValue="false" itemDescription="Visualizza i colori in formato esadecimale"/>
              <f:selectItem itemLabel="Colore Letterale" itemValue="true" itemDescription="Visualizza i colori in formato uamno"/>
    
    
          </h:selectOneMenu>
         <h:selectOneMenu>
              <f:selectItems value="#{ResumeBean.availableColors}"/>
          </h:selectOneMenu>
          
    
      </h:form>
      </f:view>
      </body>
    </html>
    codice:
    Bean
    package ctrl;
    
    import javax.faces.event.ValueChangeEvent;
    import javax.faces.model.SelectItem;
    
    public class ResumeBean {
    
    
           private SelectItem[] availableColorNames = {new SelectItem("BLACK"), 
                new SelectItem("WHITE"), new SelectItem("SILVER"), 
                new SelectItem("RED"), new SelectItem("GREEN"), 
                new SelectItem("BLUE")};
        private SelectItem[] availableColorValues = {new SelectItem("#000000"), 
                new SelectItem("#FFFFFF"), new SelectItem("#C0C0C0"), 
                new SelectItem("#FF0000"), new SelectItem("#00FF00"), 
                new SelectItem("#0000FF")};
    
        private boolean isUsingColorNames = true;
    
        public SelectItem[] getAvailableColors() {
            if (isUsingColorNames) {
                return (availableColorNames);
            } else {
                return (availableColorValues);
            }
        }
    
        public SelectItem[] getAvailableColorNames() {
            return availableColorNames;
        }
    
        public void setAvailableColorNames(SelectItem[] availableColorNames) {
            this.availableColorNames = availableColorNames;
        }
    
        public SelectItem[] getAvailableColorValues() {
            return availableColorValues;
        }
    
        public void setAvailableColorValues(SelectItem[] availableColorValues) {
            this.availableColorValues = availableColorValues;
        }
    
        public boolean isUsingColorNames() {
            return isUsingColorNames;
        }
    
        public void setUsingColorNames(boolean usingColorNames) {
            isUsingColorNames = usingColorNames;
        }
    
    
        public void changeColorMode(ValueChangeEvent event) {
            boolean flag = Boolean.getBoolean((String) event.getNewValue());
            setUsingColorNames(!flag);
    
    
        }
    }
    Dove sta l'errore?


    grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    Scrivo solo per segnalare che ho provveduto a modificare il titolo di questa discussione rendendolo maggiormente indicativo rispetto al contenuto e al problema.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.