Utilizzo dei File di Properties con le WebDynpro For Java.

Transcript

Utilizzo dei File di Properties con le WebDynpro For Java.
File di Properties e WD4J
http://desvino.altervista.org
Utilizzo dei File di Properties con le WebDynpro For Java.
Un file properties, caratterizzato dall’estensione .properties, viene solitamente usato per immagazzinare i
parametri di una applicazione, per l’internazionalitazion e localization. Ogni parametro è caratterizzato da
una coppia chiave / valore.
All’interno del NetWeaver Developer Studio utilizzare la view Web Dynpro Explorer -> Navigator per
caricare i file di properties in: src -> configuration -> Applications - > myApplication.
Segue il codice fondamentale per la gestione dei file di properties per le WD4J.
import com.sap.tc.webdynpro.services.sal.config.api.WDConfiguration;
import
com.sap.tc.webdynpro.services.sal.config.api.WDConfigurationNotFoundException;
import
com.sap.tc.webdynpro.services.sal.config.api.WDInvalidConfigParameterException;
import com.sap.tc.webdynpro.services.sal.deployment.api.WDDeployableObjectPart;
WDDeployableObjectPart currentAppPart =
wdThis.wdGetAPI().getComponent().getApplication().getDeployableObjectPart();
IWDConfiguration catConfig =
WDConfiguration.getConfigurationByName(currentAppPart, <FILE>);
Librerie ed oggetti necessari per leggere un file di properties
Da help.sap.com
WDConfiguration provides static methods to access an IWDConfiguration instance. The configuration can be
located on the following different context levels:
On the level of the deployable object.
On the level of a specific deployable object part.
The name of the configuration unit can be automatically derived from the context using the
methods getConfiguration, or it is stated explicitly by the user via the methods getConfigurationByName.
WDDeployableObjectPart represents the content of a Web Dynpro deployment unit, like applications, components,
configurations or component interfaces. There is always exactly one deployable object related to a deployable object
part.
Esempio 1 – File di properties con chiavi singole - Utilizzo di getStringEntry.
protocollo=http
server=myServer
url=myUrl
port=8080
user=deStefano
server.properties
String serverProp = "server";
1
File di Properties e WD4J
http://desvino.altervista.org
WDDeployableObjectPart currentAppPart =
wdThis.wdGetAPI().getComponent().getApplication().getDeployableObjectPart();
try{
//access the property file under the deployable object part.
IWDConfiguration servConfig =
WDConfiguration.getConfigurationByName(currentAppPart, serverProp);
List serverList = new ArrayList();
//get the string values of the property.
String protocollo = servConfig.getStringEntry("protocollo");
…
String user = servConfig.getStringEntry("user");
wdContext.nodeServer().bind(new ArrayList());
IPrivateXXX.IServerElement elS =
wdContext.nodeServer().createGruppiElement();
elS.setProtocollo(serverList.get(0).toString());
…
elS.setUser(serverList.get(4).toString());
wdContext.nodeServer().addElement(elS);
}catch(WDConfigurationNotFoundException e1) {manager.reportException("Non
è possibile caricare i gruppi", false);}
catch(WDInvalidConfigParameterException e2)
{manager.reportException("Non è possibile caricare i gruppi", false);}
Esempio 2 – File di properties con chiavi duplicate – Utilizzo di getAllKeys .
te=Tematica
te=Tematica
te=Tematica
te=Tematica
te=Tematica
1
2
3
4
5
listaTematiche.properties
WDDeployableObjectPart currentAppPart =
wdThis.wdGetAPI().getComponent().getApplication().getDeployableObjectPart();
String lista Tematiche = "listaTematiche";
try{
//lettura lista tematiche dal file listatematiche.properties
//access the property file under the deployable object part.
IWDConfiguration temConfig =
WDConfiguration.getConfigurationByName(currentAppPart, listaTematiche);
String[] listaKeyTematiche = new String[0];
listaKeyTematiche = temConfig.getAllKeys();
List tematiche = new ArrayList();
for(int i=0; i<listaKeyTematiche.length; i++) {
2
File di Properties e WD4J
http://desvino.altervista.org
String tematica =
temConfig.getStringEntry(listaKeyTematiche[i]);
tematiche.add(tematica);
}
wdContext.nodeTematiche().bind(new ArrayList());
for (int i = 0; i < tematiche.size(); i++) {
IPrivateXXX.ITematicheElement el =
wdContext.nodeTematiche().createTematicheElement();
el.setTematicheItem(tematiche.get(i).toString());
wdContext.nodeTematiche().addElement(el);
}
}catch(WDConfigurationNotFoundException e1) {manager.reportException("Non
è possibile caricare le tematiche", false);}
catch(WDInvalidConfigParameterException e2)
{manager.reportException("Non è possibile caricare le tematiche", false);}
Esempio 3 – File di properties con chiavi multiple – Utilizzo di getStringEntry.
gr0=Gruppo1
des0=Gruppo
gr1=Gruppo2
des1=Gruppo
gr2=Gruppo3
des2=Gruppo
gr3=Gruppo4
des3=Gruppo
di Supporto
di Manutenzione
Staff
di Sviluppo
lista gruppi.properties
WDDeployableObjectPart currentAppPart =
wdThis.wdGetAPI().getComponent().getApplication().getDeployableObjectPart();
private static final int gruppiKeys = 4;
String listaGruppi = "listagruppi";
try{
//lettura lista gruppi dal file listagruppi.properties
//access the property file under the deployable object part.
IWDConfiguration grConfig =
WDConfiguration.getConfigurationByName(currentAppPart, listaGruppi);
List gruppi = new ArrayList();
List descrizioneGruppi = new ArrayList();
for (int i = 0; i < gruppiKeys; i++) {
//get the string value of the property.
try{
String item = grConfig.getStringEntry("gr" + i);
String item2 = grConfig.getStringEntry("des" + i);
gruppi.add(item);
descrizioneGruppi.add(item2);
}catch(NullPointerException e){}
}
wdContext.nodeGruppi().bind(new ArrayList());
for (int i = 0; i < descrizioneGruppi.size(); i++) {
IPrivateXXX.IGruppiElement elG =
3
File di Properties e WD4J
http://desvino.altervista.org
wdContext.nodeGruppi().createGruppiElement();
elG.setGruppiItem(gruppi.get(i).toString());
elG.setDescrizione(descrizioneGruppi.get(i).toString());
wdContext.nodeGruppi().addElement(elG);
}
}catch(WDConfigurationNotFoundException e1) {manager.reportException("Non
è possibile caricare i gruppi", false);}
catch(WDInvalidConfigParameterException e2)
{manager.reportException("Non è possibile caricare i gruppi", false);}
4