java error does not have the property

nico_wagner

Cadet 3rd Year
Registriert
Nov. 2013
Beiträge
59
Hallo,
ich habe folgendes Problem:

Das ist meine Java Class:
Code:
import javax.inject.Named;

@Named
public class TableSelect {

	private String tabelle;

	public String getTabelle() {
		return tabelle;
	}

	public void setTabelle(String tabelle) {
		this.tabelle = tabelle;
	}

	public boolean getAusgabe(){
		boolean temp;
		if(getTabelle().isEmpty() && getTabelle()!= null){
			temp = getTabelle().equals("dashboard_schwellwerte");
			return temp;
		}
		return false;
	}
}

meine XHTML:

Code:
	<p:dialog value="4" header="test3" rendered="#{tableSelect.getAusgabe}" />


und mein Error:

Code:
java error TableSelect.getAusgabe does not have the property

Woran liegt das??
 
Code:
	<p:dialog value="4" header="test3" rendered="#{tableSelect.getAusgabe()}" />
 
Erstellst du auch das Objekt im xhtml?
 
Versuche das:
Code:
@ManagedBean
@SessionScoped
@Named
public class TableSelect { ...

Außerdem wäre die ganze Exception interessant und nicht nur 3 Worte.
 
Code:
if(getTabelle().isEmpty() && getTabelle()!= null){
	temp = getTabelle().equals("dashboard_schwellwerte");
	return temp;
}

Wenn die Tabelle leer aber nicht null ist? Fehlt da evtl. ein Ausrufezeichen? Außerdem müssen die Abfragen andersrum sein, sonst platzt dir die Bedingung im Falle von getTabelle()== null weg, weil die .isEmpty() Prüfung eine NPE werfen wird.
 
Zuletzt bearbeitet:
Habe jetzt einen neuen Error wenn ich @Named @ManagedBean und@SessionScoped verwende:

Code:
14:20:11,526 WARN  [org.jboss.weld.Event] (MSC service thread 1-8) WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<Object>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
14:20:13,620 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."admin_masken.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."admin_masken.war".WeldStartService: Failed to start service
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904) [jboss-msc-1.2.0.Final.jar:1.2.0.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_67]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_67]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_67]
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Bean declaring a passivating scope must be passivation capable.  Bean:  Managed Bean [class de.telit.admin_masken.TableSelect] with qualifiers [@Default @Any @Named]
	at org.jboss.weld.bean.ManagedBean.checkType(ManagedBean.java:203)
	at org.jboss.weld.bean.AbstractBean.initializeAfterBeanDiscovery(AbstractBean.java:103)
	at org.jboss.weld.bean.ManagedBean.initializeAfterBeanDiscovery(ManagedBean.java:113)
	at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$AfterBeanDiscoveryInitializerFactory.doWork(ConcurrentBeanDeployer.java:129)
	at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$AfterBeanDiscoveryInitializerFactory.doWork(ConcurrentBeanDeployer.java:120)
	at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
	at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_67]
	... 3 more

14:20:13,634 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "admin_masken.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"admin_masken.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"admin_masken.war\".WeldStartService: Failed to start service
    Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Bean declaring a passivating scope must be passivation capable.  Bean:  Managed Bean [class de.telit.admin_masken.TableSelect] with qualifiers [@Default @Any @Named]"}}
Ergänzung ()

Ohne die neuen Indizes läuft dasProgramm. Aber die Abfrage funktioniert nicht:/
 
Zuletzt bearbeitet:
Mach mal aus dem boolean ein Boolean :D
Nach Bean-Notation müsste es beim Grundtyp boolean isAusgabe() lauten.
 
Es sieht jetzt so aus:
Code:
if(getTabelle()!= null && getTabelle().isEmpty()){
			temp = getTabelle().equals("dashboard_schwellwerte");
			return temp;
 
Macht doch keinen Sinn!

Deine if-Clause prüft ob getTabelle() nicht null ist und getTabelle() leer ist.
Eine Zeile später prüfst du, ob getTabelle() gleich "dashboard_schwellwerte" ist. Das ist IMMER FALSE, da getTabelle() ja leer ist. Siehe if-Clause.

Da fehlt immernoch ein Ausrufezeichen vor getTabelle().isEmpty()
 
Oh Sry, das habe ich jetzt korrigiert und es läuft erstmal alles(startet Server). Aber es wird nicht in die Funktion rein gesprungen.
ES soll ein treenode angeklickt werden, welcher dann ein update auf grid1 ausführt.

Code:
<p:commandLink value="#{node}"
	action="#{tableSelect.setTabelle('dashboard_schwellwerte')}"
	update="grid1"	/>

boolean ausgabe wird jedoch nicht überprüft:/
 
Zuletzt bearbeitet:
nico_wagner schrieb:
...

boolean ausgabe wird jedoch nicht überprüft:/

Hast du dir mal den Post von CapFuture zu Gemüte geführt?

Getter Methoden für Boolsche Variablen heißen immer isVariablenName und nicht getVariablenName.

Ich sehe aktuell auch noch nicht, wo die Mothode aufgerufen wird.
 
Ja, hab das jetzt auch geändert mit dem Ergebnis: TableSelect does not have the property isAusgabe. Es soll so funktionieren, dass der Dialog (soll später eine Tabelle sein) zunächst nicht gerendered wird. Dann drücke ich auf den Treenode und dann soll das grid in dem dieser dialog ist neu geladen werden und dann überprüft der dialog in render ob true oder false zurückgegeben wird
 
Zurück
Oben