commandbutton führt "action" nicht aus!

MrOTJ

Mitglied
Hi ihr alle vor dem Bildschrim, bei mir liegt eine grad nicht überwindbare Hürde vor dem weiteren Fortgang meines Projektes, deswegen an alle die es besser wissen, hier mein Problem....


Benutze
RIchfaces
JSF
Java



Ich habe hier ein Fromular, dessen relevanter Code sieht so aus:

HTML:
.......

	</h:outputLink>
	<br />
	<rich:spacer height="40" />
		<a4j:commandButton id="registerCustomerButton" value="#{cmp.registerCustomer}"
		action="#{guest.doRegister};" styleClass="rich-fileupload-button"
		oncomplete="if (document.getElementById('j_id1:jsfMsgMaxSev').value != '2') { #{rich:component('registerCustomerPanel')}.hide(); #{rich:component('regPending')}.show(); }"> 
				
</a4j:commandButton>
			
	</h:panelGroup>
	</f:facet>
	</h:panelGrid>
		
	<rich:message for="registerCustomerButton">
	<f:facet name="errorMarker">
			<h:graphicImage value="/base/img/error.gif" />
	</f:facet>
		</rich:message>
	</a4j:form>


wenn ich nun den Action Button ausführe, führt er mir zwar aus, was in "oncomplete" festgelegt ist, aber er hüpft einfach nicht in die Methode des guest-beans!

hatte eb es auch schon mit javascript direkt im action aufruf probiert:

HTML:
<a4j:commandButton id="registerCustomerButton" value="#{cmp.registerCustomer}"
						action="alert('hallo');" styleClass="rich-fileupload-button"

...nüscht passiert!

doch der Button gibt definitv einen Request von sich! Das seh ich auch im Firebug!
Nur die Logger in der Bean geben natürlich auch nichts aus..

Woran kann das liegen? Überseh ich was? Die Bean ist auf jeden Fall im Spring angelegt, sonst würde es schon beschwerden beim Seitenaufruf geben..
Die Messages für den CommanButton werden nicht ausgegeben, oder er besitz keine, doch da das gif auch fehtl stimmt doch da was nicht....
Kann mir jemand helfen?
 
Moin,

möglicherweise hast du ja das falsche Forum erwischt, aber da du es auch mit Javascript versucht hast...ein Button hat lt. HTML kein action-Attribut, und einen action-Event gibt es auch nicht.

Was es gibt, wäre bspw. ein onclick-Event, da würde er die Meldung hallo ausgeben, wenn man raufklickt.
 
Hi, also erst mal gebe ich dir recht, bin im falschen Forum gelandet!

Alelrdings luegt das daran, das ich glaube, der Fehler steht aus dem Request (validierungsfehler des Frfameworks), aber da bi nich hier wohl echt falsch.

KAnn ich den Thread irgendwie verschieben?

So,das hier dient der Information, falls interesse!

a:commandbutton ist eine componente aus dem RichFaces Framework, gerendert als html sieht das
HTML:
<a4j:commandButton reRender="someData" action="#{bean.action1}" value="Link"/>
dann so aus:
Code:
<input type="submit" onclick="A4J.AJAX.Submit(...request parameters);return false;" value="sort"/>

Danke trotzdem für die Hilfe, gelöst hab ich es nämlich noch nich!
 
CommandButton und ModalPanel

Hi meine lieben!
Bin ratlos, deswegen bitte hilfe:

hab eine index.xhtml, in der mach ich einen
...
<a4j:include viewId="/pages/edit.xhtml"/>
...

Ganz einfach, doch nun meine Frage:

in diesem Code hier wird die Methode "doRegisterCustomer ausgeführt, wenn ich den Commandbutton klicke (komplette edit.xhtml):

HTML:
<rich:panel style="background-color: #037c7d ; border:none; text-align:center" width="600" height="600" xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:richfaces="http://richfaces.ajax4jsf.org/rich"
	xmlns:promotion="http://promotion.de/jsf">
	<h:graphicImage width="580" height="580" value="/base/img/test.jpg" />
		
<f:loadBundle basename="de.promotion.messageresource.MessageResources" var="msg" />
<f:loadBundle basename="de.promotion.messageresource.ComponentResources" var="cmp" />
	  	
		<h:commandButton  id="registerCustomerButton" value="#{cmp.registerCustomer}"
						action="#{guest.doRegisterCustomer}" styleClass="rich-fileupload-button"> 
					</h:commandButton>
	
 	
	<rich:modalPanel id="registerCustomerPanel" width="540" height="580">
 	
 	
 	
	</rich:modalPanel>
</rich:panel>



In diesem Code aber nicht:

HTML:
<rich:panel style="background-color: #037c7d ; border:none; text-align:center" width="600" height="600" xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:richfaces="http://richfaces.ajax4jsf.org/rich"
	xmlns:promotion="http://promotion.de/jsf">
	<h:graphicImage width="580" height="580" value="/base/img/test.jpg" />
		
<f:loadBundle basename="de.promotion.messageresource.MessageResources" var="msg" />
<f:loadBundle basename="de.promotion.messageresource.ComponentResources" var="cmp" />
	  	
		
 	
	<rich:modalPanel id="registerCustomerPanel" width="540" height="580">
 	
 	<h:commandButton  id="registerCustomerButton" value="#{cmp.registerCustomer}"
						action="#{guest.doRegisterCustomer}" styleClass="rich-fileupload-button"> 
					</h:commandButton>
	
 	
	</rich:modalPanel>
</rich:panel>


jemand ne Idee, wäre euch wirklich sehr danbar....

Bye
 
ein paar sachen die ich prüfen würde:
- gibts die doRegister() Methode mit korrekter signatur im guest bean?
- du hast noch ein ';' nach "#{guest.doRegister}" dens nicht braucht
- die <rich:messages/> komplett anzeigen
 
HI, danke für die Tips, nur nichts geholfen bzw:

Die Bean gibt es natürlich mit dieser Syntax, wenn ich sie ja nicht in dem Modal Panel, sondern im Eltern Panel aufrufe, gehts einwandfrei, das seh ich in den Logs der doRegister() Methode, somit hat sich auch die Sache mit dem Strichpunkt erledigt, den es liegt wirklich an dieser einen Zeile, sie eben im Modal Panel ist (geht nicht) oder im Eltern RichPanel (da gehts)

Und im Moment zeigen mir die Messages gar nichts an, wie meinst du das "komplett anzeigen"?

also nicht nur für den Button, einfach so meinst du : <rich:messages/>

Da kommt auch nichts!

Aber nochmals danke für die Hilfe!!


Kann es sein das es an den Formular mit dem include liegt?
Aber wär acuh schwer zu verstehen, da es ja wirklich nur diese eine Zeile ist!
 
so, vielen Dank für die richtige Einordnung,
ich bin der Sache nun "ein wenig" näher gekommen....


es liegts wirklich ausschließlich am ModalPanel anscheinend!

Also es funktioniert immer, nur wenn ich dieses ModalPanel einfüge nicht mehr!
Kann es sein das etwas beim even"show"

HTML:
	<h:outputLink value="#" id="registerCustomerLink">
  				<h:outputText styleClass="toolbarLink" value="#{cmp.registerCustomer}"/>
  				<rich:componentControl for="registerCustomerPanel" attachTo="registerCustomerLink" operation="show" event="onclick"/>
  			</h:outputLink>

verloren geht oder passiert?

das ist wirklich das einzige was zwischen "funktionieren" und "nicht funktionieren" liegt!

Weiss jemand Rat?
 
Gelöst

2 Tage verloren...was für ein Mist!

Folgendes:

Habe um dem CommandButton noch eine a4j;region gelegt, und nun scheint es zu klappen. Sehr komisch, da alles schon in einem a4j:form liegt, doch anscheinend brauchr man beides, zumindest in meinem Fall!

Und vorsicht bei der Validierung, da führt er natürlch auch keine Logik aus!

bisschen mit dem a4j:region rumspielen, dann geht das schon!

Viel Erfolg euch allen da draussen....

P.S. und gleich ein neues Problem: http://www.tutorials.de/forum/java/341806-komische-classcastexception.html
 

Neue Beiträge

Zurück