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