When using Wicket in a portlet, CheckGroup loses it`s value when some field is
in error
---------------------------------------------------------------------------------------
Key: WICKET-4100
URL: https://issues.apache.org/jira/browse/WICKET-4100
Project: Wicket
Issue Type: Bug
Components: wicket, wicket-portlet
Affects Versions: 1.4.18
Environment: Liferay 6.0.5 and Liferay 6.0.6 bundled with Tomcat
Reporter: Robson Miranda
Since in Liferay we can configure the portlets to redirect to view after an
action request, and, differently from a standard web application, the page is
generated during the response phase, when a component have some validation
error in a form, the CheckGroups that are part of this form loose it's values.
This is due to the Check component, in it's onComponentTag() method, uses
getInputAsArray(), which get the request parameters. However, during the render
phase, the request parameters are lost when the portlet redirects to view after
processing an action.
This problem manifests also when using an FileUploadField in the form,
independently of the redirect-after-post configuration.
To workaround, I changed the onComponentTag of the Check component to use
CheckGroup's getRawInput() instead of getInputAsArray, since the rawInput is
also serialized with the component:
if (group.hasRawInput())
{
String[] input;
if (group.getRawInput() != null)
input =
group.getRawInput().split(FormComponent.VALUE_SEPARATOR);
else
input = new String[0];
I do not know if this is the correct workaround, but, using this way, solved
the problem for me.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira