<p:accordionPanel <ui:repeat <p:commandButton Action funktioniert teilweise

mineralwasser

Neues Mitglied
Hallo,

ich nutze Primefaces 3.4.2.
menueBean ist ViewScoped


Der unten stehende Code erzeugt mehrere Tabs. Darin eine Reihe an CommandButtons.
Jeder CommandButton soll die selbe Action menueBean.jumpTag ausführen. Der übergabeParameter offer12.name ist ein String.
Jedoch führt NUR DER ERSTE gerenderte Button die Action menueBean.jumpTag aus.
Alle weiteren CommandButtons führen die Action nicht aus.
Wie müsste der Code richtig lauten, dass jeder Button die Action ausführt ?

<p:accordionPanel var="tag" value="#{menueBean.menueCategories}" id="acpanel">
<p:tab title="#{menueBean.offersByGroup(tag)}" rendered="#{menueBean.filteredOffers.size() > 0}" >
<h:form id="acform">
<ui:repeat value="#{menueBean.filteredOffers}" var ="offer12">
<h:eek:utputText value="#{offer12.name}"/>
<p:commandButton value="test" action="#{menueBean.jumpTag(offer12.name)}" process="@this"/>


</ui:repeat>
</h:form>
</p:tab>
</p:accordionPanel>


Vielen Dank
 

sence

Bekanntes Mitglied
Bitte verwende die Codetags, damit wird das lesen für jeden deiner Helfer angenehmer.

1)
Der unten stehende Code erzeugt mehrere Tabs. Darin eine Reihe an CommandButtons.
ich sehe nur ein Tab

2)
setzte das Form mal außerhalb des accordionPanels

Java:
<h:form>
<p:accordionPanel var="tag" value="#{menueBean.menueCategories}" id="acpanel">
// implementierung .... 
</p:accordionPanel>
</h:form>

Welche JSF Implementierung / Version?
 
Zuletzt bearbeitet:

sence

Bekanntes Mitglied
Habe es mir gerade mal nachgebaut, funktioniert ohne probleme :(
implementiere dir mal die 2 Sachen und schau im Log nach ob der Output ankommt.
Wenn nein, dann würde ich eine andere Version / Implementierung nehmen.

habe mojarra 2.2.0-m07 und PF 3.4 verwendet

Test
Java:
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class Test {

	private List<String> lst;
	
	public Test() {
		lst = new ArrayList<String>();
		lst.add("Hallo");
		lst.add("Wie");
		lst.add("Geht Es");
	}

	public void tuWas(String s) {
		System.out.println(s);
	}

	public List<String> getLst() {
		return lst;
	}

	public void setLst(List<String> lst) {
		this.lst = lst;
	}
}


Java:
<h:form id="acform">
<p:accordionPanel var="tag" value="#{test.lst}" id="acpanel">
<p:tab title="#{tag}" >

<ui:repeat var="rep" value="#{test.lst}">
<p:commandButton value="test" action="#{test.tuWas(rep)}" process="@this"/>
</ui:repeat>

</p:tab>
</p:accordionPanel>      	
</h:form>
 

Ähnliche Java Themen

Neue Themen


Oben