public void persistFieldChange(String fieldName, Object newValue) {
   try {
     page.persistFieldChange(this, fieldName, newValue);
   } catch (Exception ex) {
     throw new TapestryException(
         StructureMessages.fieldPersistFailure(getCompleteId(), fieldName, ex), getLocation(), ex);
   }
 }
  public Object getRenderVariable(String name) {
    Map<String, Object> variablesMap = getRenderVariables(false);

    Object result = InternalUtils.get(variablesMap, name);

    if (result == null) {
      throw new IllegalArgumentException(
          StructureMessages.missingRenderVariable(
              getCompleteId(), name, variablesMap == null ? null : variablesMap.keySet()));
    }

    return result;
  }