You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Xav DECO <xp...@hotmail.com> on 2004/08/31 18:20:21 UTC
Struts-faces form input with rendered attribute set
Craig, All,
I would like to discuss the issue I have entered in Bugzilla (issue #30511)
with title Struts-faces form input with rendered attribute set that you
put invalid a while ago.
I am first going to rewrite the issue and I will try to explain where I do
not find things logical.
First of all, I use the struts-faces library, so I have Struts forms and JSF
pages (I also use tiles).
So I have 1 Struts forms, called serverForm with 2 attributes:
<form-bean name="serverForm"
type="org.apache.struts.validator.DynaValidatorForm" >
<form-property name="dns" type="java.lang.String" />
<form-property name="mtc" type="java.lang.String" />
</form-bean>
I also have 2 actions: one called before displaying the JSF page, and
another one called at submission time.
These 2 actions are associated with the same form serverForm marked as
request scope for both.
The first action populates the form attributes so as to prefill the inputs,
it also sets the mtc attribute to edit.
The second action is used to save the data into an XML data file.
The JSF page looks like this:
<s:form action="/saveServer" onsubmit="return validateServerForm(this);">
<h:inputHidden id="mtc" value="#{serverForm.mtc}" />
...
<h:inputText id="dns" value="#{serverForm.dns}" rendered="#{serverForm.mtc
== 'edit'}"/>
...
</s:form>
At rendering time the page is correctly displayed and the dns input displays
if mtc is equals to edit, if the dns field has a value its value displays
in the field.
Then if I submit the form, in my Struts action class, I can get the mtc
value using:
DynaValidatorForm serverForm = (DynaValidatorForm) form ;
String mtc = (String)serverForm.get( "mtc" ) ;
The mtc attribute is equals to edit.
But when I try to do:
String dns = (String)serverForm.get( "dns" ) ;
I cannot obtain the dns value that was submitted even if mtc is equals to
edit.
To sum up the value of the attribute serverForm.mtc is available at
rendering time and at submitting time but seems not present while evaluating
the rendered JSF attribute during the form submit phase.
Then if I put the scope of both actions used as Session scope, it works
correctly, I can get the dns submitted value.
Without knowing in details the way a request is handled behind the scene
especially between JSF and Struts, I think there is something wrong here but
I am not 100% sure. In fact I am pretty sure that I should not be obliged to
set these actions in session scope.
If you need more information, please let me know.
Thanks a lot for your help
Xavier
_________________________________________________________________
MSN Messenger : discutez en direct avec vos amis !
http://www.msn.fr/msger/default.asp
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org