2015-05-25 5 views
0

Я начинаю новый проект с использованием Tapestry 5.x. Чтобы справиться с этим, я делаю несколько экспериментов.Tapestry BeanEditForm customization

На данный момент я ищу способ добавить маленькую звезду в качестве первого элемента метки каждого поля формы с «обязательным» ограничением визуализированного объекта.

Например

public class Address 
{ 
    @Validate("required") 
    public String lastName; 
} 

Rendered с

<t:beaneditform object="addr" submitlabel="message:submit-label" /> 

Если вынести HTML как

<div> 
    <label><span>*</span> First name : </label> 
    <input type="text" name="firstname" /> 
</div> 

Я в настоящее время код базы очень близко к описанному в the official documentation.

Но, к сожалению, я не нашел общий способ реализовать то, что хочу.

Есть ли у меня совет для меня на этом?

ответ

1

Вы можете сделать это с помощью смесителя Label. Для получения ссылки на параметр метки field, mixin использовал бы следующее.

@BindParameter 
private Field field; 

Затем можно проверить field.isRequired() в вас Mixin и настроить HTML. Более подробная информация в Mixins here

После того, как ваш Mixin работает, вы можете затем прикрепить его к каждой этикетке (даже те, внутри BeanEditForm) с использованием ComponentClassTransformWorker2, как описано в блоге here.