We are using struts 2.3.xx after upgrade to struts 2.5.12 we found that the ParameterAware
is deprecated and we must use HttpParametersAware
.
Problem
There is an action class which extends ParameterAware
and change some parameters before action (It remove input masks for example removes ,
from 123,456,789
) :
public class Sample extends ActionSupport implements
ModelDriven<SampleVO>,ParameterAware {
@Override
public void setParameters(Map<String, String[]> parameters) {
for (String[] values : parameters.values()) {
for (int i = 0; i < values.length; i++) {
values[i] = Mask.removeMask(values[i]);
}
}
}
}
We tried to do this with new HttpParametersAware
and some thing like:
for (Entry<String, Parameter> entry : parameters.entrySet()) {
String key = entry.getKey();
Parameter newParam = new Parameter.Request( key, entry.getValue().getValue().replaceAll(",", ""));
}
But I face the error
HttpParameters are immutable, you cannot put value directly!
Can we change parameters like we used to do it in struts 2.3.x. how ?! If not any alternative?