-
1. Re: tabPanel - tabs - a4jcommandlink - actionparam
moldovan May 7, 2007 3:26 AM (in response to moldovan)Has anybody of you noticed this behaviour??
For me, I'm getting in troubles, because my webapp has many tabs, and i cannot assign parameters, which are needed an action-methods. -
2. Re: tabPanel - tabs - a4jcommandlink - actionparam
ilya_shaikovsky May 7, 2007 10:27 AM (in response to moldovan)Unable to reproduce on the RC1.
-
3. Re: tabPanel - tabs - a4jcommandlink - actionparam
moldovan May 8, 2007 3:18 AM (in response to moldovan)Ok, ilya!
I will upgrade to RC2 and check it again. Maybe I'm using an to old 3.0.1 snapshot - version. -
4. Re: tabPanel - tabs - a4jcommandlink - actionparam
ilya_shaikovsky May 8, 2007 3:42 AM (in response to moldovan)Ok.. Just inform us if it will be unsuccessfull.
-
5. Re: tabPanel - tabs - a4jcommandlink - actionparam
moldovan May 9, 2007 5:14 AM (in response to moldovan)Tested it with RC2, but getting the same behaviour.
Take this testsite:<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%> <%@ taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%> <html> <head> <title>AJAX - WebApplication</title> </head> <body> <f:view> <a4j:region id="region"> <a4j:outputPanel id="outputpanel"> <a4j:form id="siteform"> <a4j:outputPanel ajaxRendered="true"> <h:messages showDetail="false" showSummary="true" /> </a4j:outputPanel> <rich:tabPanel switchType="ajax"> <rich:tab label="1. TAB" > <h:outputText value="Here is commandLink No 1: " /> <a4j:commandLink id="commandlink1" value="just click" action="#{testTabPanel.actionMethod1}" reRender="outputpanel" > <a4j:actionparam value="TestParam1" assignTo="#{testTabPanel.var1}" /> </a4j:commandLink> </rich:tab> <rich:tab label="2. TAB"> <h:outputText value="Here is commandLink No 2: " /> <a4j:commandLink id="commandlink2" value="just click" action="#{testTabPanel.actionMethod2}" reRender="outputpanel" > <a4j:actionparam value="TestParam2" assignTo="#{testTabPanel.var2}" /> </a4j:commandLink> </rich:tab> <rich:tab label="3. TAB"> <h:outputText value="Here is commandLink No 3: " /> <a4j:commandLink id="commandlink3" value="just click" action="#{testTabPanel.actionMethod3}" reRender="outputpanel" > <a4j:actionparam value="TestParam3" assignTo="#{testTabPanel.var3}" /> </a4j:commandLink> </rich:tab> <rich:tab label="4. TAB"> <h:outputText value="Here is commandLink No 4: " /> <a4j:commandLink id="commandlink4" value="just click" action="#{testTabPanel.actionMethod4}" reRender="outputpanel" > <a4j:actionparam value="TestParam4" assignTo="#{testTabPanel.var4}" /> </a4j:commandLink> </rich:tab> </rich:tabPanel> </a4j:form> </a4j:outputPanel> </a4j:region> </f:view> </body> </html>
And this Bean:package net.wimaxxed.ajaxwebapp.webapp.bean; public class TestTabPanel { private String var1 = null; private String var2 = null; private String var3 = null; private String var4 = null; public String actionMethod1() { System.out.println("CommandLink of 1st Tab called!"); return null; } public String actionMethod2() { System.out.println("CommandLink of 2nd Tab called!"); return null; } public String actionMethod3() { System.out.println("CommandLink of 3rd Tab called!"); return null; } public String actionMethod4() { System.out.println("CommandLink of 4th Tab called!"); return null; } // Getter and Setter - Methods: public String getVar1() { return var1; } public void setVar1(String var1) { System.out.println("Setting var1 to _> "+var1); this.var1 = var1; } public String getVar2() { return var2; } public void setVar2(String var2) { System.out.println("Setting var2 to _> "+var2); this.var2 = var2; } public String getVar3() { return var3; } public void setVar3(String var3) { System.out.println("Setting var3 to _> "+var3); this.var3 = var3; } public String getVar4() { return var4; } public void setVar4(String var4) { System.out.println("Setting var4 to _> "+var4); this.var4 = var4; } }
This is the jboss-output after clicking the links in following order: commandlink1, commandlink2, cl3, cl4, cl3, cl2, cl1
.........
10:55:08,190 INFO [MyfacesConfig] Starting up Tomahawk on the MyFaces-JSF-Implementation
11:05:28,603 INFO [STDOUT] Setting var1 to _> TestParam1
11:05:28,603 INFO [STDOUT] CommandLink of 1st Tab called!
11:05:34,381 INFO [STDOUT] CommandLink of 2nd Tab called!
11:05:37,145 INFO [STDOUT] CommandLink of 3rd Tab called!
11:05:39,628 INFO [STDOUT] CommandLink of 4th Tab called!
11:05:42,158 INFO [STDOUT] CommandLink of 3rd Tab called!
11:05:44,157 INFO [STDOUT] CommandLink of 2nd Tab called!
11:05:46,266 INFO [STDOUT] Setting var1 to _> TestParam1
11:05:46,266 INFO [STDOUT] CommandLink of 1st Tab called!
You can see, that only the assigning of the first parameter with actionparam in first tab is running. Nothing else -
6. Re: tabPanel - tabs - a4jcommandlink - actionparam
ilya_shaikovsky May 9, 2007 10:20 AM (in response to moldovan)So thank for your submit.. Looks like the problem in the ajax4jsf inside myFaces environment. After I've switched my JSF 1.2.02 env to myFaces 1.1.5 - able to reproduce your problem.
-
7. Re: tabPanel - tabs - a4jcommandlink - actionparam
ilya_shaikovsky May 9, 2007 10:27 AM (in response to moldovan)http://jira.jboss.com/jira/browse/RF-175
Thanks again. -
8. Re: tabPanel - tabs - a4jcommandlink - actionparam
patrickr May 19, 2007 4:13 PM (in response to moldovan)Today, I encountered the same problem. I could use a traditional f:param as a work-around. Maybe someone else finds this useful:
<a:commandLink id="clkEditEventDate" actionListener="#{eventSeriesManager.selectEventDate}" reRender="eventDateEditor"> <h:outputText value="Bearbeiten" /> <f:param name="eventDateId" value="#{eventDate.id}" /> </a:commandLink> public void selectEventDate(ActionEvent e) { FacesContext context = FacesContext.getCurrentInstance(); Map map = context.getExternalContext().getRequestParameterMap(); Long id = Long.parseLong((String) map.get("eventDateId")); ? }
-
9. Re: tabPanel - tabs - a4jcommandlink - actionparam
kirancsagi May 24, 2007 5:26 PM (in response to moldovan)I am facing the above issue with the traditional f:param toooo
-
10. Re: tabPanel - tabs - a4jcommandlink - actionparam
locutusut May 24, 2007 9:30 PM (in response to moldovan)I am as well. Please vote on this issue if you can.
-
11. Re: tabPanel - tabs - a4jcommandlink - actionparam
moldovan May 25, 2007 2:54 AM (in response to moldovan)As workaround i'm using the <t:updateActionListener> - Tag.
He fires before calling the action.
But it would be great, if the bug could be resolved quickly. -
12. Re: tabPanel - tabs - a4jcommandlink - actionparam
sergeyhalipov Jun 5, 2007 12:05 PM (in response to moldovan)Try to specify 'name' attributes for a4j:actionparam tags. For example:
rich:tabPanel switchType="ajax" >
<rich:tab label="1. TAB" name="first" >
<h:outputText value="Here is commandLink No 1: " />
<a4j:commandLink id="commandlink1" value="just click"
action="#{testTabPanel.actionMethod1}" reRender="outputpanel">
<a4j:actionparam value="TestParam1"
assignTo="#{testTabPanel.var1}" name="param1" />
</a4j:commandLink>
</rich:tab>