ValueChangeEvent: esempio di h:selectOneMenu

Forum relativo ai framework per l'utilizzo della tecnologia JSP

ValueChangeEvent: esempio di h:selectOneMenu

Messaggioda alesslud » ven ott 23, 2009 8:23 am

Eventi basati sul cambiamento di una pagina: l'esempio mostra, in base alla selezione su una select html, il cambio di lingua di una pagina Web.
Allegati
facesvalueselectchaged.zip
Il progetto è stato testa con Eclipse Galileo e JBoss 5.0.
(11.66 KiB) Scaricato 267 volte
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

index.jsp

Messaggioda alesslud » ven ott 23, 2009 8:23 am

<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<head>
<link href="styles.css" rel="stylesheet" type="text/css"/>
<f:loadBundle basename="com.aquilasiti.messages" var="res"/>
<title>
<h:outputText value="#{res.pageTitle}"/>
</title>
</head>

<body>
<h:outputText value="#{res.title}" styleClass="a"/>
<p/>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="#{res.indirizzo}"/>
<h:inputText id="streetAddress" value="#{myForm.indirizzo}"/>

<h:outputText id="cityPrompt" value="#{res.citta}"/>
<h:inputText value="#{myForm.citta}"/>

<h:outputText id="statePrompt" value="#{res.stato}"/>
<h:inputText value="#{myForm.stato}"/>

<h:outputText value="#{res.paese}"/>

<h:selectOneMenu value="#{myForm.paese}"
onchange="submit()"
valueChangeListener="#{myForm.changed}">
<f:selectItems value="#{myForm.paesi}"/>
</h:selectOneMenu>
</h:panelGrid>
<p/>
<h:commandButton value="#{res.submit}"/>
</h:form>
</body>
</f:view>
</html>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

styles.css

Messaggioda alesslud » ven ott 23, 2009 8:24 am

body {
background: aqua;
}
.a {
font-size: 1.3em;
font-style: italic;
}
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

web.xml

Messaggioda alesslud » ven ott 23, 2009 8:24 am

<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

faces-config.xml

Messaggioda alesslud » ven ott 23, 2009 8:25 am

<?xml version="1.0"?>

<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>
<managed-bean>
<managed-bean-name>myForm</managed-bean-name>
<managed-bean-class>com.aquilasiti.MyForm</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages.properties

Messaggioda alesslud » ven ott 23, 2009 8:25 am

#questo è il file properties di default

pageTitle=ValueChangeEvent
title=Inserisci le informazioni

indirizzo=Address
citta=City
stato=State
paese=Country
submit=Invia
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages_it_IT.properties

Messaggioda alesslud » ven ott 23, 2009 8:26 am

pageTitle=ValueChangeEvent
title=Inserisci le informazioni

indirizzo=Address
citta=City
stato=State
paese=Country
submit=Invia
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages_en_US.properties

Messaggioda alesslud » ven ott 23, 2009 8:26 am

pageTitle=ValueChangeEvent
title=Please fill in your address

indirizzo=Address
citta=City
stato=State
paese=Country
submit=Submit address
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

messages_en_CA.properties

Messaggioda alesslud » ven ott 23, 2009 8:27 am

pageTitle=ValueChangeEvent
title=Please fill in your address

indirizzo=Address
citta=Municipality
stato=Province
paese=Country
submit=Submit address
alesslud
Site Admin
 
Messaggi: 779
Iscritto il: mer nov 08, 2006 8:09 am

MyForm.java

Messaggioda alesslud » ven ott 23, 2009 8:27 am

package com.aquilasiti;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class MyForm {
private String indirizzo;
private String citta;
private String stato;
private String paese;

private static final String US = "United States";
private static final String yyyyyy = "yyyyyy";
private static final String ITALIA = "Italia";
private static final String[] COUNTRY_NAMES = { US, yyyyyy, ITALIA };
private static ArrayList<SelectItem> paesi = null;

public Collection getPaesi() {
if (paesi == null) {
paesi = new ArrayList<SelectItem>();
for (int i = 0; i < COUNTRY_NAMES.length; ++i) {
//è l'elemento che viene selzionato per la selezione
paesi.add(new SelectItem(COUNTRY_NAMES[i]));
}
}
return paesi;
}

public String getIndirizzo() {
return indirizzo;
}

public void setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
}

public String getCitta() {
return citta;
}

public void setCitta(String citta) {
this.citta = citta;
}

public String getStato() {
return stato;
}

public void setStato(String stato) {
this.stato = stato;
}

public String getPaese() {
return paese;
}

public void setPaese(String paese) {
this.paese = paese;
}

public void changed(ValueChangeEvent event) {
FacesContext context = FacesContext.getCurrentInstance();

if (US.equals((String) event.getNewValue()))
context.getViewRoot().setLocale(Locale.US);
else if (ITALIA.equals((String) event.getNewValue()))
context.getViewRoot().setLocale(Locale.ITALY);
else
context.getViewRoot().setLocale(Locale.yyyyyy);
}
}
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