View Full Version : [JAVA JSP] settare una variabile con un link
DesmoColo
06-07-2008, 00:43
Salve.
Devo fare un sito multilingua utilizzando jsp.
Per fare questo ho una servelt contente una variabile booleana lingua, che a seconda del valore preso restiutisce alla pagina jsp un parametro, e a seconda di quel parametro viene visualizzato un testo nella lingua scelta.
Ho un link nella pagina jsp, che dovrebbe settare il parametro nella servlet, ma non so come "linkare"
Finora per invocare metodi nella servlet ho usato una form con i bottoni, ma vorrei evitarlo (mi basta un sempice link :-))
Potete dirmi come si fa?
quello che vuoi fare tu si chiama internazionalizzazione , se vuoi falro con i "link" basterebbe settare la lingua nella query string ( linkToMiaServlet?lang=it ) , ma java gestisce l'internazionalizzazione in modo "automatico" cioe quando ti connetti al server , questo rileva la tua "zona" e imposta il locale (http://java.sun.com/j2se/1.4.2/docs/api/java/util/Locale.html), che poi tu lo vai a richiamare con "request.getLocale() (http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html#getLocale())" , per visualizzare poi i messaggi nella lingua del utente basterebbe mettere il seguente codice nella jsp
ResourceBundle (http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html)b = ResourceBundle.getBundle("file" , request.getLocale());
.....
<h>
<%=b.getString("mess.hello")%>
</h>
dove file e un file .properties che contiene i vari messaggi . I file per le varie lingue avranno il codice della regione nel nome del file ... file_it.properties x italia , file_fr.properties x francia e cosi via ... file.properties sara il file di default che verrā caricato se non esiste un file x una certa regione ( di solito in lingua inglese) . "mess.hello" e l'identificativo di un messaggio ( mess.hello=salve mondo ).
DesmoColo
06-07-2008, 15:07
quello che vuoi fare tu si chiama internazionalizzazione , se vuoi falro con i "link" basterebbe settare la lingua nella query string ( linkToMiaServlet?lang=it )
L'inidirizzo č http://localhost:8080/nomesito/ nel campo href del link, sapendo che la servlet č nella dir classes, scrivo:
http://localhost:8080/nomesito/classes
Ho provato ma non funziona....
Volendo invece procedere con un file. properties, mi sai indicare dove posso trovare un tutorial per la sintassi con cui editarlo?
beh 6 un po fuori strada ... una servlet nn la puoi invocare con il suo percorso sul file system ... ma con il nome con quale e mappata nel web.xml ... tipo http:/./localhost:8080/nomesito/nomeServlet?param1=valore1
nn ho trovato un tutorial decente , cmq ti ho linkato un po di siti dove ho trovato qualcosina ... cmq ti ho allegato una piccola applicazione web di esempio (funzionante ) da cui prendere spunto :O
http://www.mokabyte.it/1998/11/internazio.htm
http://www.mokabyte.it/1997/10/intern.htm
http://www.javaportal.it/rw/24575/editorial.html
DesmoColo
07-07-2008, 22:21
Grazie 1000! provo e ti faccio sapere
Ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.