You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Leonhard Holzer <le...@abuscom.com> on 2007/08/01 14:54:55 UTC
[Tobago] parameter for detail links
Hello list,
I use spring webflow together with tobago 1.0.11 on java 1.4.
I have a sheet:
<tc:sheet
value="#{tableSearchCriteria.tableList}"
columns="100px;70px;70px;70px;*" var="row">
<tc:column label="#{global.tableName}">
<tc:out value="#{row}" />
</tc:column>
...
<tc:column label="#{global.actions}">
<tc:form id="describeTableForm">
<tc:button
label="#{global.cmdDescribe}" action="describe"
actionListener="#{tableSearchCriteria.test}">
<tc:attribute name="testTable"
value="test123"/>
<f:param name="tableNameId"
value="Test23"/>
</tc:button>
</tc:form>
</tc:column>
...
</tc:sheet>
but the parameter tableNameId is not transfered to the server.If I read
all request parameters in the actionListener:
FacesContext context = FacesContext.getCurrentInstance();
Map map = context.getExternalContext().getRequestMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
System.out.println("key: "+key+" -> "+map.get(key));
}
The parameter tableNameId is not part of the parameters. does anyone
have any suggestions?
regards
Leo
Re: [Tobago] parameter for detail links
Posted by Leonhard Holzer <le...@abuscom.com>.
I realized the solution with the actionListener.
This are short snapshots of the solution:
I need the parameter as input parameter for a spring subflow with the
following definition:
<subflow-state flow="describeTable-flow" id="describeTable">
<attribute-mapper>
<input-mapper>
<mapping
source="flowScope.tableSearchCriteria.selectedTable"
target="tableNameId" from="string" to="string"/>
</input-mapper>
</attribute-mapper>
<transition on="finish" to="displayTableList" />
</subflow-state>
The action Listener saves the parameter in the selectedTable Property:
public void selectTable(ActionEvent event) {
Object param =
((UIParameter)event.getComponent().getChildren().get(0)).getValue();
selectedTable = (String) param;
}
And the jsp page has the following structure:
<tc:column label="#{global.actions}">
<tc:form id="describeTableForm">
<tc:button
label="#{global.cmdDescribe}" action="describe"
actionListener="#{tableSearchCriteria.selectTable}">
<f:param name="tableNameId"
value="#{row}"/>
</tc:button>
</tc:form>
</tc:column>
Thanks for your help
regards
Leo
Volker Weber schrieb:
> Hi Leonhard,
>
> you need the value of the parameter in your action?
>
> Implement your actionListener like this:
>
> public void test(ActionEvent event) {
> String value =
> (String)ComponentUtil.findParameter(event.getComponent(),
> "tableNameId");
>
> ...
>
> }
>
>
> Regards,
> Volker
>
>
>
>
> 2007/8/1, Leonhard Holzer <le...@abuscom.com>:
>
>> Hello list,
>>
>> I use spring webflow together with tobago 1.0.11 on java 1.4.
>> I have a sheet:
>>
>> <tc:sheet
>> value="#{tableSearchCriteria.tableList}"
>> columns="100px;70px;70px;70px;*" var="row">
>> <tc:column label="#{global.tableName}">
>> <tc:out value="#{row}" />
>> </tc:column>
>> ...
>> <tc:column label="#{global.actions}">
>> <tc:form id="describeTableForm">
>> <tc:button
>> label="#{global.cmdDescribe}" action="describe"
>> actionListener="#{tableSearchCriteria.test}">
>> <tc:attribute name="testTable"
>> value="test123"/>
>> <f:param name="tableNameId"
>> value="Test23"/>
>> </tc:button>
>> </tc:form>
>> </tc:column>
>> ...
>> </tc:sheet>
>>
>>
>> but the parameter tableNameId is not transfered to the server.If I read
>> all request parameters in the actionListener:
>>
>> FacesContext context = FacesContext.getCurrentInstance();
>> Map map = context.getExternalContext().getRequestMap();
>> Iterator iter = map.keySet().iterator();
>> while (iter.hasNext()) {
>> String key = (String) iter.next();
>> System.out.println("key: "+key+" -> "+map.get(key));
>> }
>>
>>
>> The parameter tableNameId is not part of the parameters. does anyone
>> have any suggestions?
>>
>> regards
>> Leo
>>
>>
>>
>
>
>
>
--
----------------------------------
Leonhard Holzer
ABusCom GmbH
Kapuzinerplatz 9
I 39031 Bruneck
Tel.: +39 0474 538 000
Fax.: +39 0474 538 000
mobil: +39 335 83 28 041
web: www.abuscom.com
----------------------------------
Re: [Tobago] parameter for detail links
Posted by Volker Weber <v....@inexso.de>.
Hi Leonhard,
you need the value of the parameter in your action?
Implement your actionListener like this:
public void test(ActionEvent event) {
String value =
(String)ComponentUtil.findParameter(event.getComponent(),
"tableNameId");
...
}
Regards,
Volker
2007/8/1, Leonhard Holzer <le...@abuscom.com>:
> Hello list,
>
> I use spring webflow together with tobago 1.0.11 on java 1.4.
> I have a sheet:
>
> <tc:sheet
> value="#{tableSearchCriteria.tableList}"
> columns="100px;70px;70px;70px;*" var="row">
> <tc:column label="#{global.tableName}">
> <tc:out value="#{row}" />
> </tc:column>
> ...
> <tc:column label="#{global.actions}">
> <tc:form id="describeTableForm">
> <tc:button
> label="#{global.cmdDescribe}" action="describe"
> actionListener="#{tableSearchCriteria.test}">
> <tc:attribute name="testTable"
> value="test123"/>
> <f:param name="tableNameId"
> value="Test23"/>
> </tc:button>
> </tc:form>
> </tc:column>
> ...
> </tc:sheet>
>
>
> but the parameter tableNameId is not transfered to the server.If I read
> all request parameters in the actionListener:
>
> FacesContext context = FacesContext.getCurrentInstance();
> Map map = context.getExternalContext().getRequestMap();
> Iterator iter = map.keySet().iterator();
> while (iter.hasNext()) {
> String key = (String) iter.next();
> System.out.println("key: "+key+" -> "+map.get(key));
> }
>
>
> The parameter tableNameId is not part of the parameters. does anyone
> have any suggestions?
>
> regards
> Leo
>
>
Re: [Tobago] parameter for detail links
Posted by Zied Hamdi <ja...@gmail.com>.
Hi Volker,
I didn't know about that! does a session scoped bb hold old bindings, or why
shouldn't we use binding in that case?
Is it because of the tree view serialization when dormant?
I though binding is the best way to be in touch with the view and get user
entries efficiently...
Regards,
Zied
2007/8/1, Volker Weber <v....@inexso.de>:
>
> Hi,
>
> i suppose to don't use binding if you can avoid it. At least you
> should never use a binding pointing to a session scoped bean.
>
>
> Regards,
> Volker
>
> 2007/8/1, Zied Hamdi <ja...@gmail.com>:
> > Hi Leo,
> >
> > You sould use one of these two
> >
> > 1. <tc:sheet binding="tableSearchCriteria.table"
> > 2. getApplication().createValueBinding( "#{" + yourID + "}" ).getValue(
> > getFacesContext() );
> >
> > If you are under jsf 1.2 you can use
> > getApplication().evaluateExpressionGet( getFacesContext(),
> > "#{" + el + "}", clazz ) for the second case.
> > In general it's not a good idea to access the tree through
> ServletRequest
> > parameters, JSF did all it can to hide this low level.
> >
> > Regards,
> > Zied
> >
> >
> > 2007/8/1, Leonhard Holzer <le...@abuscom.com>:
> > > Hello list,
> > >
> > > I use spring webflow together with tobago 1.0.11 on java 1.4.
> > > I have a sheet:
> > >
> > > <tc:sheet
> > > value="#{tableSearchCriteria.tableList}"
> > >
> > columns="100px;70px;70px;70px;*" var="row">
> > > <tc:column label="#{ global.tableName
> }">
> > > <tc:out value="#{row}"
> > />
> > > </tc:column>
> > > ...
> > > <tc:column label="#{ global.actions}">
> > > <tc:form
> > id="describeTableForm">
> > > <tc:button
> > > label="#{global.cmdDescribe}" action="describe"
> > > actionListener="#{tableSearchCriteria.test}">
> > > <tc:attribute
> > name="testTable"
> > > value="test123"/>
> > > <f:param
> > name="tableNameId"
> > > value="Test23"/>
> > > </tc:button>
> > > </tc:form>
> > > </tc:column>
> > > ...
> > > </tc:sheet>
> > >
> > >
> > > but the parameter tableNameId is not transfered to the server.If I
> read
> > > all request parameters in the actionListener:
> > >
> > > FacesContext context = FacesContext.getCurrentInstance();
> > > Map map = context.getExternalContext().getRequestMap();
> > > Iterator iter = map.keySet().iterator();
> > > while (iter.hasNext()) {
> > > String key = (String) iter.next();
> > > System.out.println("key: "+key+" -> "+map.get(key));
> > > }
> > >
> > >
> > > The parameter tableNameId is not part of the parameters. does anyone
> > > have any suggestions?
> > >
> > > regards
> > > Leo
> > >
> > >
> >
> >
> >
> > --
> > Zied Hamdi
> > zatreex.sourceforge.net
>
--
Zied Hamdi
zatreex.sourceforge.net
Re: [Tobago] parameter for detail links
Posted by Volker Weber <v....@inexso.de>.
Hi,
i suppose to don't use binding if you can avoid it. At least you
should never use a binding pointing to a session scoped bean.
Regards,
Volker
2007/8/1, Zied Hamdi <ja...@gmail.com>:
> Hi Leo,
>
> You sould use one of these two
>
> 1. <tc:sheet binding="tableSearchCriteria.table"
> 2. getApplication().createValueBinding( "#{" + yourID + "}" ).getValue(
> getFacesContext() );
>
> If you are under jsf 1.2 you can use
> getApplication().evaluateExpressionGet( getFacesContext(),
> "#{" + el + "}", clazz ) for the second case.
> In general it's not a good idea to access the tree through ServletRequest
> parameters, JSF did all it can to hide this low level.
>
> Regards,
> Zied
>
>
> 2007/8/1, Leonhard Holzer <le...@abuscom.com>:
> > Hello list,
> >
> > I use spring webflow together with tobago 1.0.11 on java 1.4.
> > I have a sheet:
> >
> > <tc:sheet
> > value="#{tableSearchCriteria.tableList}"
> >
> columns="100px;70px;70px;70px;*" var="row">
> > <tc:column label="#{ global.tableName}">
> > <tc:out value="#{row}"
> />
> > </tc:column>
> > ...
> > <tc:column label="#{ global.actions}">
> > <tc:form
> id="describeTableForm">
> > <tc:button
> > label="#{global.cmdDescribe}" action="describe"
> > actionListener="#{tableSearchCriteria.test}">
> > <tc:attribute
> name="testTable"
> > value="test123"/>
> > <f:param
> name="tableNameId"
> > value="Test23"/>
> > </tc:button>
> > </tc:form>
> > </tc:column>
> > ...
> > </tc:sheet>
> >
> >
> > but the parameter tableNameId is not transfered to the server.If I read
> > all request parameters in the actionListener:
> >
> > FacesContext context = FacesContext.getCurrentInstance();
> > Map map = context.getExternalContext().getRequestMap();
> > Iterator iter = map.keySet().iterator();
> > while (iter.hasNext()) {
> > String key = (String) iter.next();
> > System.out.println("key: "+key+" -> "+map.get(key));
> > }
> >
> >
> > The parameter tableNameId is not part of the parameters. does anyone
> > have any suggestions?
> >
> > regards
> > Leo
> >
> >
>
>
>
> --
> Zied Hamdi
> zatreex.sourceforge.net
Re: [Tobago] parameter for detail links
Posted by Zied Hamdi <ja...@gmail.com>.
Hi Leo,
You sould use one of these two
1. <tc:sheet binding="tableSearchCriteria.table"
2. getApplication().createValueBinding( "#{" + yourID + "}" ).*getValue*(
getFacesContext() );
If you are under jsf 1.2 you can use getApplication().evaluateExpressionGet(
getFacesContext(), "#{" + el + "}", clazz ) for the second case.
In general it's not a good idea to access the tree through ServletRequest
parameters, JSF did all it can to hide this low level.
Regards,
Zied
2007/8/1, Leonhard Holzer <le...@abuscom.com>:
>
> Hello list,
>
> I use spring webflow together with tobago 1.0.11 on java 1.4.
> I have a sheet:
>
> <tc:sheet
> value="#{tableSearchCriteria.tableList}"
> columns="100px;70px;70px;70px;*" var="row">
> <tc:column label="#{global.tableName}">
> <tc:out value="#{row}" />
> </tc:column>
> ...
> <tc:column label="#{global.actions}">
> <tc:form id="describeTableForm">
> <tc:button
> label="#{global.cmdDescribe}" action="describe"
> actionListener="#{tableSearchCriteria.test}">
> <tc:attribute name="testTable"
> value="test123"/>
> <f:param name="tableNameId"
> value="Test23"/>
> </tc:button>
> </tc:form>
> </tc:column>
> ...
> </tc:sheet>
>
>
> but the parameter tableNameId is not transfered to the server.If I read
> all request parameters in the actionListener:
>
> FacesContext context = FacesContext.getCurrentInstance();
> Map map = context.getExternalContext().getRequestMap();
> Iterator iter = map.keySet().iterator();
> while (iter.hasNext()) {
> String key = (String) iter.next();
> System.out.println("key: "+key+" -> "+map.get(key));
> }
>
>
> The parameter tableNameId is not part of the parameters. does anyone
> have any suggestions?
>
> regards
> Leo
>
>
--
Zied Hamdi
zatreex.sourceforge.net