It seems to be impossible transmit the empty string as a value: In the HTTP request
http://.../turbine/...?aaa=123&bbb=&ccc=456
the parameter bbb is ignored.
If you look at org.apache.turbine.services.intake.model.Field.init(ValueParser pp) you find:
if (pp.containsKey(getKey()))
{
if (isDebugEnabled)
{
log.debug(name + ": Found our Key in the request, setting Value");
}
if (StringUtils.isNotEmpty(pp.getString(getKey())))
{
setFlag = true;
}
validate();
}
else if (pp.containsKey(getValueIfAbsent()) &&
pp.getString(getValueIfAbsent()) != null)
{
pp.add(getKey(), pp.getString(getValueIfAbsent()));
setFlag = true;
validate();
}
The StringUtils.isNotEmpty() condition (line 342) prevents that a field can take up the empty string as its value.