SeasarのpublicフィールドでFormTableを使う

FormTableにコントロールカラムを配置するためには、通常のTableで使用するColumnの替わりにFieldColumnを使用する必要がありますが、これはSeasarで推奨されるpublicフィールドに対応していません。
publicフィールドに対応させるには、FieldColumnを継承し、getPropertyメソッドをオーバーライドして、publicフィールドに対応させなければいけません。

     public class PublicFieldFormTableColumn extends FieldColumn {
...
          @Override
          public Object getProperty(String name, Object row) {
               try {
                    String[] names = new String[] { name };
                    if (name.indexOf('.') >= 0) {
                         names = name.split("\\.");
                    }
                    Class<?> target = row.getClass();
                    Object value = row;
                    for (String propertyName : names) {
                         Field field = target.getField(propertyName);
                         value = field.get(value);
                         target = field.getType();
                    }
                    return value;
               } catch (Exception ex) {
                    throw new RuntimeException(ex);
               }
          }
     }

なおこれは、S2Clickに含まれるPublicFieldColumnの実装方法をそのまま用いています。