Autocompleter con RichFaces rich:suggestionbox rich:comboBox

Forum relativo ai framework per l'utilizzo della tecnologia JSP

Autocompleter con RichFaces rich:suggestionbox rich:comboBox

Messaggioda alesslud » mer nov 02, 2011 4:46 pm

Abbiamo utilizzato per il test la versione 3.3 di RichFaces su JBoss5. Prossimamente pubblicheremo anche un esempio per la versione 4.0 su JBoss 6.

Con questa versione di RichFaces non è possibile utilizzare l'itemValue e l'itemLabel in quanto il lavore che viene passato è sempre l'itemValue.
Per scaricare le librerie cliccate qui in basso. Le librerie vanno aggiunte della la cartella lib che si trova dentro Web-content/WEB-INF del progetto.
http://www.aquilasiti.com/librerie/richfaces3.3.zip
Allegati
A4JTest.zip
Testato con Eclipse Galileo e JBoss5
(14.71 KiB) Scaricato 281 volte
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Pagina di autocompletamento senza ComboBox

Messaggioda alesslud » mer nov 02, 2011 4:47 pm

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<f:view>
<head>
<f:loadBundle basename="messages" var="msgs" />
<title><h:outputText value="#{msgs.title}" /></title>
<head>
<body>
<h:form>
<center>Pagina di test di un autompleter</center>
<h:inputText id="city" value="#{autocompleter.nomeComune}" />
<rich:suggestionbox for="city" var="result"
suggestionAction="#{autocompleter.autocomplete}" binding="#{autocompleter.regione}">
<h:column>
<h:outputText value="#{result.name}" />
</h:column>
</rich:suggestionbox>
<h:commandButton action="#{autocompleter.inviaDatoComune}" value="Invia dato"></h:commandButton>
<h:commandLink immediate="true" action="#{navigator.vaiAAutoompleterComboBox}">Autocompleter combo box</h:commandLink>
</h:form>
</body>
</f:view>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Pagina di autocompletamento con ComboBox

Messaggioda alesslud » mer nov 02, 2011 4:47 pm

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<f:view>
<head>
<f:loadBundle basename="messages" var="msgs" />
<title><h:outputText value="#{msgs.title}" /></title>
<head>
<body>
<h:form>
<center>Pagina di test di un autompleter con combo box</center>
<rich:comboBox binding="#{autocompleter.comboBox}"
value="#{autocompleter.idComuneSelezionato}"
label="seleziona un valore" defaultLabel="seleziona un valore">
<f:selectItems value="#{autocompleter.autocompleterComboBox}" />
</rich:comboBox>
<h:commandButton action="#{autocompleter.inviaRegioneFromBomboBox}"
value="Invia dato"></h:commandButton>
</h:form>
</body>
</f:view>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Autocompleter.java

Messaggioda alesslud » mer nov 02, 2011 4:52 pm

package com.aquilasiti.index;

import java.util.ArrayList;
import java.util.List;

import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.model.SelectItem;

public class Autocompleter {

public Autocompleter() {
// TODO Auto-generated constructor stub
}

private String nomeComune;
private UIComponent regione;
private String idComuneSelezionato;
private UIInput comboBox;



public UIInput getComboBox() {
return comboBox;
}

public void setComboBox(UIInput comboBox) {
this.comboBox = comboBox;
}

public String getIdComuneSelezionato() {
return idComuneSelezionato;
}

public void setIdComuneSelezionato(String idComuneSelezionato) {
this.idComuneSelezionato = idComuneSelezionato;
}

public UIComponent getRegione() {
return regione;
}

public void setRegione(UIComponent regione) {
this.regione = regione;
}

public String getNomeComune() {
return nomeComune;
}

public void setNomeComune(String nomeComune) {
this.nomeComune = nomeComune;
}

public List<Citta> autocomplete(Object suggest) {
String retval = (String) suggest;
List<Citta> values = new ArrayList<Citta>();
List<Citta> result = new ArrayList<Citta>();
Citta citta = new Citta();
citta.setName("L'Aquila");
citta.setId(1L);
values.add(citta);
citta = new Citta();
citta.setName("Avezzano");
citta.setId(2L);
values.add(citta);
citta = new Citta();
citta.setName("Aielli");
citta.setId(3L);
values.add(citta);
citta = new Citta();
citta.setName("Pescara");
citta.setId(4L);
values.add(citta);
citta = new Citta();
citta.setName("Penne");
citta.setId(5L);
values.add(citta);
for (Citta i : values) {
if (i.getName().toLowerCase().indexOf(retval.toLowerCase()) == 0) {
result.add(i);
}
}
return result;
}

public List<SelectItem> getAutocompleterComboBox() {
List<SelectItem> result = new ArrayList<SelectItem>();
result.add(new SelectItem("L'Aquila", "1"));
result.add(new SelectItem("Avezzano", "2"));
result.add(new SelectItem("Aielli", "3"));
result.add(new SelectItem("Pescara", "4"));
result.add(new SelectItem("Penne", "5"));
return result;
}

public void inviaDatoComune() {
Object value = regione;
System.out.println(value);
}


public void inviaRegioneFromBomboBox(){
System.out.println(comboBox);
System.out.println(idComuneSelezionato);
}
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Navigator.java

Messaggioda alesslud » mer nov 02, 2011 4:53 pm

package com.aquilasiti.index;

public class Navigator {

public Navigator() {
super();
}

public String vaiAPaginaNuova() {
return "paginaNuova";
}

public String vaiAAutoompleterComboBox() {
return "vaiAAutoompleterComboBox";
}

}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Citta.java

Messaggioda alesslud » mer nov 02, 2011 4:53 pm

package com.aquilasiti.index;

public class Citta {

public Citta() {
// TODO Auto-generated constructor stub
}

private String name;
private Long id;



public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}



}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

index.java

Messaggioda alesslud » mer nov 02, 2011 4:54 pm

Questa pagina contiene anche un esempio di chiamata ajax da un ComboBox

<html>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<f:view>
<head>
<f:loadBundle basename="messages" var="msgs" />
<title><h:outputText value="#{msgs.title}" /></title>
<head>
<body>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="Seleziona una regione: " />
<h:selectOneMenu value="#{regione.nomeRegioneSelezionato}">
<f:selectItem itemValue="" itemLabel="" />
<f:selectItem itemValue="Abruzzo" itemLabel="Abruzzo" />
<f:selectItem itemValue="Molise" itemLabel="Molise" />
<f:selectItem itemValue="Lazio" itemLabel="Lazio" />
<a4j:support event="onchange" action="#{regione.cambiaRegione}"
ajaxSingle="true" reRender="citta" />
</h:selectOneMenu>
<h:outputText value="Città: " />
<h:selectOneMenu id="citta" value="#{regione.nomeCitta}">
<f:selectItems value="#{regione.citta}" />
</h:selectOneMenu>
</h:panelGrid>
<h:commandLink immediate="true" action="#{navigator.vaiAPaginaNuova}">Autocompleter</h:commandLink><br />
<h:commandLink immediate="true" action="#{navigator.vaiAAutoompleterComboBox}">Autocompleter combo box</h:commandLink>
</h:form>
</body>
</f:view>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

start.jsp

Messaggioda alesslud » mer nov 02, 2011 4:54 pm

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head></head>
<body>
<jsp:forward page="index.jsf" />
</body>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

Index.java

Messaggioda alesslud » mer nov 02, 2011 4:55 pm

package com.aquilasiti.index;

import java.util.LinkedList;
import java.util.List;

import javax.faces.model.SelectItem;

public class Index {

// Data to be binded with the UIs ...
private String nomeRegioneSelezionato;
private List<SelectItem> citta = new LinkedList<SelectItem>();
private String nomeCitta;


// This is the method called by Ajax4JSF ...
public void cambiaRegione() {
citta.clear();
if ("Abruzzo".equals(nomeRegioneSelezionato)) {
citta.add(new SelectItem("L'Aquila", "L'Aquila"));
citta.add(new SelectItem("Pescara", "Pescara"));
citta.add(new SelectItem("Chieti", "Chieti"));
citta.add(new SelectItem("Teramo", "Teramo"));
} else if ("Molise".equals(nomeRegioneSelezionato)) {
citta.add(new SelectItem("Campobasso", "Campobasso"));
citta.add(new SelectItem("Termoli", "Termoli"));
citta.add(new SelectItem("Isernia", "Isernia"));
} else if ("Lazio".equals(nomeRegioneSelezionato)) {
citta.add(new SelectItem("Roma", "Roma"));
citta.add(new SelectItem("Frosinone", "Frosinone"));
citta.add(new SelectItem("Latina", "Latina"));
citta.add(new SelectItem("Civitavecchia", "Civitavecchia"));
citta.add(new SelectItem("Rieti", "Rieti"));
citta.add(new SelectItem("Albano", "Albano"));
citta.add(new SelectItem("Ostia", "Ostia"));
}
}

public String getNomeRegioneSelezionato() {
return nomeRegioneSelezionato;
}

public void setNomeRegioneSelezionato(String countryName) {
this.nomeRegioneSelezionato = countryName;
}

public List<SelectItem> getCitta() {
return citta;
}

public void setCitta(List<SelectItem> citta) {
this.citta = citta;
}

public String getNomeCitta() {
return nomeCitta;
}

public void setNomeCitta(String nomeCitta) {
this.nomeCitta = nomeCitta;
}

}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

faces-config.xml

Messaggioda alesslud » mer nov 02, 2011 4:55 pm

<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
<navigation-rule>
<navigation-case>
<from-outcome>paginaNuova</from-outcome>
<to-view-id>/autocompleter.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>vaiAAutoompleterComboBox</from-outcome>
<to-view-id>/autocompletercombobox.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>regione</managed-bean-name>
<managed-bean-class>com.aquilasiti.index.Index</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>autocompleter</managed-bean-name>
<managed-bean-class>com.aquilasiti.index.Autocompleter</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>navigator</managed-bean-name>
<managed-bean-class>com.aquilasiti.index.Navigator</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

web.xml

Messaggioda alesslud » mer nov 02, 2011 4:56 pm

<?xml version="1.0"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Ajax4JSF</display-name>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>



<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>


<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
</web-app>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages.properties

Messaggioda alesslud » mer nov 02, 2011 4:56 pm

title="Test RichFaces"
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am


Torna a JSF e Struts

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron