[jboss-user] [Tomcat, HTTPD, Servlets & JSP] - Datamodel - I get no data from the Datamodel

Ceene do-not-reply at jboss.com
Wed Jun 11 05:11:50 EDT 2008


Hi folks

I have a big Problem with my DataModel and DataTable.
I show my datas with the DataTable and the DataModel. I can show the datas without any problem but if i try to get the selected rownumber with the method "getRowIndex" I get a "-1" back but I don't know why.

I hope someone can help me with the problem.

Here my xhtml-Page (not all):

  | <fieldset class="usrFormPos">
  | <legend>Anzahl gefundener Sätze: #{strhdl.datamodel.rowCount}</legend>	
  |     <h:dataTable value="#{strhdl.datamodel}" var="str" 
  |     	headerClass="usrDataHeader"
  |     	rowClasses="usrDataRow1,usrDataRow2"
  |     	columnClasses="usrDataColScore,usrDataColPlz,usrDataColOrt,usrDataColStr,usrDataColHsBreich,usrDataColOrt">
  |         <h:column>
  |     		<f:facet name="header">    		
  |     			<h:outputLabel value="%"/>
  |     		</f:facet>    		
  |     		<h:outputText value="#{str.score}" />
  |         </h:column>
  |         <h:column>
  |     		<f:facet name="header">
  |     			<h:outputLabel value="Plz"/>
  |     		</f:facet>
  |     		<h:outputText value="#{str.plz}" />
  |         </h:column>
  |         <h:column>
  |     		<f:facet name="header">
  |     			<h:outputLabel value="Ort"/>
  |     		</f:facet>
  |     		<h:outputText value="#{str.ort}" />
  |         </h:column>
  |         <h:column>
  |     		<f:facet name="header">    			
  |  				<h:outputLabel value="Straße"/>
  |     		</f:facet>
  |    			<h:outputText value="#{str.strasse}" />
  |         </h:column>
  |         <h:column>
  |     		<f:facet name="header">
  |     			<h:outputLabel value="Hsnr.-Ber."/>
  |     		</f:facet>
  |     		<h:outputText value="#{str.hsnrbereich}" />
  |         </h:column>
  |         <h:column>
  |     		<f:facet name="header">
  |     			<h:outputLabel value="Ortsteil"/>
  |     		</f:facet>
  |     		<h:outputText value="#{str.ortsteil}" />
  |         </h:column>
  |         <h:column>
  |             <s:button value="ok" action="#{strhdl.select}" styleClass="usrFormSubmitOk"/>  
  |         </h:column>
  |         
  |     </h:dataTable>
  | </fieldset>
  | </h:form>
  | </body>
  | </html>
  | 


An here my Handler:

  | import java.util.ArrayList;
  | import java.util.List;
  | 
  | import javax.ejb.*;
  | import javax.faces.context.FacesContext;
  | import javax.faces.model.DataModel;
  | import javax.faces.model.ListDataModel;
  | import javax.faces.event.ValueChangeEvent;
  | import org.jboss.seam.log.Log;
  | import org.jboss.seam.annotations.*;
  | import org.jboss.seam.ScopeType;
  | import org.jboss.seam.core.FacesMessages;
  | import hwplz_d.ejb.HWplz_DBeanRemote;
  | import hwname_pd.ejb.HWname_PDBeanRemote;
  | import tcdlgejb.*;
  | import tcdlgsbi.*;
  | 
  | 
  | @Stateful
  | @Name("strhdl")
  | @Scope(ScopeType.EVENT) 
  | public class StrasseHandler implements StrasseHandlerLocal {
  | 
  | 	static private String inStr;
  | 	static private String inPlz;
  | 	static private String inOrt;
  | 	
  | 	@EJB
  | 	private KundeHandlerLocal kundehdl;
  | 	
  | 	@EJB
  | 	private HWplz_DBeanRemote hwplz_d; 
  | 	
  | 	@EJB
  | 	private HWname_PDBeanRemote hwname_d;
  | 	
  | 	@EJB
  | 	private ToolRemote toolBean;
  | 
  | 	@Logger
  | 	private Log log;
  | 
  | 	private Kunde kunde;
  | 	private DataModel datamodel_in;
  | 	private static DataModel datamodel;
  | 	private int rowIndex = -2;        
  | 	
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * Rückgabe der gefundenen Straßen
  | 	 * @return datamodell
  | 	 */
  | 	public DataModel getDatamodel() {        
  | 		
  | 		if(datamodel == null) {            
  | 			datamodel = new ListDataModel();            
  | 			datamodel.setWrappedData(getStrassenListe());        
  | 		}                
  | 		return datamodel;     
  | 	}        
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * Straßen in Liste übernehmen
  | 	 * @return List der Strassen
  | 	 */
  | 	private List getStrassenListe() {       
  | 		
  | 		String h_ort = "";
  | 		String h_str = "";
  | 		String h_hsber = "";        
  | 
  | 		List getStrassenListe = new ArrayList();        
  | 
  |  		try { 
  | 			// Alle Strassen aus der Bean in die Liste übernehmen
  | 			for (int i=1;i < Integer.parseInt(hwplz_d.getAnzAuswahl());i++) {
  | 
  | 				//log.info(hwplz_d.getOrtInaktiv(i));
  | 				
  | 				// Ortstext ev. verkettet?
  | 		        if (hwplz_d.getOrtInaktiv(i).length() != 0)
  | 		        	h_ort = hwplz_d.getOrtInaktiv(i) + " -> " + hwplz_d.getOrtKurz(i);
  | 		        else
  | 		        	h_ort = hwplz_d.getOrtKurz(i);
  | 				
  | 		        // Straßentext ev. verkettet?
  | 		        if (hwplz_d.getStrasseInaktiv(i).length() != 0)
  | 		            h_str = hwplz_d.getStrasseInaktiv(i) + " -> " + hwplz_d.getStrasseKurz(i);
  | 		        else
  | 		        	h_str = hwplz_d.getStrasseKurz(i);
  | 
  | 		        // Hausnummernbereich oder Postfachnummer-Bereich ev. verkettet
  | 		        if (hwplz_d.getHausnrBereichInaktiv(i).length() != 0)
  | 		            h_hsber = hwplz_d.getHausnrBereichInaktiv(i) + " -> " + hwplz_d.getHausnrBereich(i);
  | 		        else if (hwplz_d.getHausnrBereich(i).length() != 0)
  | 		            h_hsber = hwplz_d.getHausnrBereich(i);
  | 		        else if (hwplz_d.getPostfachBereich(i).length() != 0)
  | 		        {
  | 		        	h_hsber = hwplz_d.getPostfachBereich(i).substring(0,6) + " - " +
  | 		        			  hwplz_d.getPostfachBereich(i).substring(6,12);
  | 		        }
  | 						
  | 		        // Werte in die Liste übernehmen
  | 		        getStrassenListe.add(new Strasse(hwplz_d.getPunkte(i), hwplz_d.getPLZ(i), hwplz_d.getPLZTyp(i), 
  | 						                         h_ort, h_str, h_hsber, hwplz_d.getOrtsteil(i)));        
  | 			}
  | 		} 
  | 		catch (Exception e) {
  | 			log.info("Fehler in getStrassenListe()!");
  | 			e.printStackTrace(); 
  | 		};		
  | 		return getStrassenListe;    
  | 	}        
  | //	----------------------------------------------------------------------------------	
  | 	/*
  | 	 * Rückgabe der eingegebenen Straße
  | 	*/
  | 	public DataModel getStrasseIn() {        
  | 		
  | 		if(datamodel_in == null) {            
  | 			datamodel_in = new ListDataModel();            
  | 			datamodel_in.setWrappedData(getStrasseInListe());        
  | 		}                
  | 		return datamodel_in;     
  | 	}        
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * Eingegebene Straße in Liste übernehmen
  | 	 * @return List der Strassen
  | 	*/
  | 	private List getStrasseInListe() {       
  | 		
  | 		List getStrasseInListe = new ArrayList();        
  | 
  | 		try { 
  | 				getStrasseInListe.add(new Strasse("  ",inPlz,"u",inOrt,inStr,"  ","  "));        
  | 		} 
  | 		catch (Exception e) {
  | 			log.info("Fehler in getStrassenInListe()!");
  | 			e.printStackTrace(); 
  | 		};		
  | 		return getStrasseInListe;    
  | 	}        
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * @return rowIndex
  | 	 */
  | 	public int getSelectedRowIndex() {        		
  | 		return rowIndex;    
  | 	}        
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * Ausgewählte Werte werden übernommen
  | 	 * @return Link zu einer anderen Seite
  | 	 */
  | 	public String select() { 
  | 		int test;
  | 		
  | 		System.out.println("DWS");
  | 		try { 
  | 			System.out.println("DWS1");
  | 			kunde = kundehdl.getSelectedKunde();
  | 			
  | 			test = datamodel.getRowIndex();
  | 		}
  | 		catch (Exception e) {
  | 			log.info("Fehler in select()!");
  | 			e.printStackTrace(); 
  | 		};		
  | 		//System.out.println(rowIndex);
  | 		return "/kunden/kunde-bearbeiten.xhtml";    
  | 	}	
  | //	----------------------------------------------------------------------------------
  | 	public void strtextChanged (ValueChangeEvent vce) {
  | 		if (vce.getOldValue() != vce.getNewValue()) {
  | 			
  | 			// Der Listener liegt hinter den Feldern Straße, Ort und PLZ.
  | 			// D.h., wenn sich in einem der 3 Felder der Wert ändert, wird
  | 			// das Flag gesetzt.
  | 			toolBean.setAFlag(1);
  | 			log.info("1");
  | 		}
  | 	}
  | //	----------------------------------------------------------------------------------	
  | 	public void strtextChangedHWname (ValueChangeEvent vce) {
  | 		if (vce.getOldValue() != vce.getNewValue()) {
  | 			
  | 			// Der Listener liegt hinter den Feldern Straße, Ort und PLZ.
  | 			// D.h., wenn sich in einem der 3 Felder der Wert ändert, wird
  | 			// das Flag gesetzt.
  | 			log.info("HWname");
  | 		}
  | 	}
  | //	----------------------------------------------------------------------------------	
  | 	/**
  | 	 * HWname Abgleich durchführen
  | 	 * @param selectedKunde
  | 	 */
  | 	public void hwname_abgleich(Kunde selectedKunde)	{
  | 		String hwname_outStatus;
  | 		String eingabeName = "";
  | 		String nachname;
  | 		
  | 		try	
  | 		{
  | 			hwname_d.setEinLenAdrname(30);
  | 			hwname_d.setEinLenPersanrede(30);
  | 			hwname_d.setEinSteuerung("KV");
  | 			if(selectedKunde.getTitel_V() != "")
  | 			{
  | 				if(selectedKunde.getTitel_V() != null)
  | 				{
  | 					eingabeName = selectedKunde.getTitel_V() + " ";
  | 				}
  | 			}
  | 			if(selectedKunde.getVorname() != "")
  | 			{
  | 				if(selectedKunde.getVorname() != null)
  | 				{
  | 					eingabeName+= selectedKunde.getVorname() + " ";
  | 				}
  | 			}
  | 			if(selectedKunde.getTitel_Z() != "")
  | 			{
  | 				if(selectedKunde.getTitel_Z() != null)
  | 				{
  | 					eingabeName+= selectedKunde.getTitel_Z() + " ";
  | 				}
  | 			}
  | 			if(selectedKunde.getAdelspraedikat() != "")
  | 			{
  | 				if(selectedKunde.getAdelspraedikat() != null)
  | 				{
  | 					eingabeName+= selectedKunde.getAdelspraedikat() + " ";
  | 				}
  | 			}
  | 			if(selectedKunde.getNachname() != "")
  | 			{
  | 				if(selectedKunde.getNachname() != null)
  | 				{
  | 					eingabeName+= selectedKunde.getNachname() + " ";
  | 				}
  | 			}
  | 			if(selectedKunde.getNachsatzwort() != "")
  | 			{
  | 				if(selectedKunde.getNachsatzwort() != null)
  | 				{
  | 					eingabeName+= selectedKunde.getNachsatzwort();
  | 				}
  | 			}
  | 			hwname_d.setEinName(eingabeName);
  | 			int tmp = Integer.parseInt(hwname_d.Do_HWname_PD());
  | 			if(tmp <= 31)
  | 			{
  | 				selectedKunde.setVorname(hwname_d.getNormVorname(0,0));
  | 				nachname = hwname_d.getNormNachname1(0);
  | 				String dummy = hwname_d.getNachname1(0);
  | 				int t = dummy.length()-1;
  | 				int z = dummy.length();
  | 				if(dummy.substring(t,z).equals("-"))
  | 				{
  | 					nachname += "-";
  | 				}
  | 				else if(hwname_d.getNormNachname2(0)!= "")
  | 				{
  | 					nachname += " ";
  | 				}
  | 				nachname +=hwname_d.getNormNachname2(0);
  | 				selectedKunde.setNachname(nachname);
  | 				selectedKunde.setAdelspraedikat(hwname_d.getNormAdelspraedikat1(0));
  | 				selectedKunde.setNachsatzwort(hwname_d.getNormNachsatzwort(0));
  | 				
  | 				for(int i = 0; i<=4; i++)
  | 				{
  | 					String test = hwname_d.getPositionTitel(0,i);
  | 					if(hwname_d.getPositionTitel(0,i).equals("V"))
  | 					{
  | 						selectedKunde.setTitel_V(hwname_d.getNormTitel(0,i));
  | 					}
  | 					else if(hwname_d.getPositionTitel(0,i).equals("Z"))
  | 					{
  | 						selectedKunde.setTitel_Z(hwname_d.getNormTitel(0,i));
  | 					}
  | 				}
  | 			}
  | 			else
  | 			{
  | 				
  | 			}
  | 		}
  | 		catch (Exception e) {
  | 			e.printStackTrace(); 
  | 		}		 
  | 		toolBean.setAFlag(0);
  | 		
  | 	}
  | //	----------------------------------------------------------------------------------
  | 	/**
  | 	 * HWplz Abgleich durchführen
  | 	 * @param selectedKunde
  | 	 * @return Link zu einer anderen Seite
  | 	 */
  | 	public String hwplz_abgleich(Kunde selectedKunde) {
  | 
  | 		String hwplz_d_outStatus;		
  | 		
  | 		// Muss ein Abgleich durchgeführt werden?
  | 		if (toolBean.getAFlag() == 1) {
  | 		   
  | 			try { 
  | 				hwplz_d.setSchwellwert("80");
  | 				hwplz_d.setMaxAuswahl("100");
  | 				hwplz_d.setSteuerung("K ");
  | 				hwplz_d.setPLZ(selectedKunde.getPlz()); 
  | 				hwplz_d.setOrt(selectedKunde.getOrt());
  | 				hwplz_d.setStrasse(selectedKunde.getStrasse_Hsnr()); 
  | 
  | 				// Werte für das Anzeigen der Eingabe speichern
  | 				inPlz = selectedKunde.getPlz(); 
  | 				inOrt = selectedKunde.getOrt();
  | 				inStr = selectedKunde.getStrasse_Hsnr();
  | 							
  | 				hwplz_d_outStatus = hwplz_d.Do_HWplz_D();
  | 			  			
  | 				// Wurde ein eindeutiger Satz gefunden?				
  | 				if (Integer.parseInt(hwplz_d_outStatus) < 100 && Integer.parseInt(hwplz_d_outStatus) != 30 &&
  | 					(hwplz_d.getAnschriftArt(1) == "V" || Integer.parseInt(hwplz_d.getPunkte(1)) >= 90)) {
  | 
  | 					selectedKunde.setStrasse_Hsnr(hwplz_d.getStrasseKurz(1) + " " +
  | 							                      hwplz_d.getHausnrFormat(1));
  | 					selectedKunde.setPlz(hwplz_d.getPLZ(1));
  | 					selectedKunde.setOrt(hwplz_d.getOrtLang(1));
  | 					selectedKunde.setOrtsteil(hwplz_d.getOrtsteil(1));
  | 				}
  | 				else if (Integer.parseInt(hwplz_d_outStatus) == 30) {
  | 					FacesMessages.instance().add("Hausnummer falsch oder nicht angegeben!");
  | 					selectedKunde.setAdressen_Sperre("Z");
  | 				}
  | 				else	
  | 				{
  | 					return "/kunden/strassen-auswahl.xhtml";					
  | 				}
  | 			} 
  | 			catch (Exception e) {
  | 				e.printStackTrace(); 
  | 			};		 
  | 			toolBean.setAFlag(0);
  | 		}
  | 		return "";
  | 	}
  | //	----------------------------------------------------------------------------------	
  | 	@Destroy
  | 	@Remove
  | 	public void destroy() {
  | 	}
  | }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4157262#4157262

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4157262




More information about the jboss-user mailing list