如何将验证错误的css类添加到列表项

时间:2016-03-10 09:30:17

标签: java wicket

在我的应用程序中,我有一个带有textField的ListView,它在用户提交按钮时进行验证。出现错误时,将显示错误消息。问题是有很多行,所以用户无法轻易识别坏行。那么有什么方法可以在提交按钮后将css类添加到这个坏行吗?

    private void addListView() {
        add(new PropertyListView<MyClass>("view") {

            private static final long serialVersionUID = 1L;

            @Override
            protected void populateItem(final ListItem<MyClass> listItem) {


                listItem.add(new TextField<String>("result") {

                    private static final long serialVersionUID = 1L;

                    @SuppressWarnings("unchecked")
                    @Override
                    public final <String> IConverter<MyClass> getConverter(Class<MyClass> type) {
                        return (IConverter<MyClass>) StringConverter.getInstance();
                    }

                });         

        });
    }

2 个答案:

答案 0 :(得分:1)

我认为您可以使用FormComponent#isValid()来判断某个组件是否存在验证错误。 然后,您可以在onBeforeRender()

中添加CSS类

请参阅此处获取灵感:(注意它是Wicket 1.4,因此您可能需要更改小位):

https://cwiki.apache.org/confluence/display/WICKET/Automatic+styling+of+form+errors

当然,您也可以找到Component的findParent()来查找行..

答案 1 :(得分:0)

感谢RobAu回答我只需要覆盖textField中的validate方法:

                    public void validate() {
                        super.validate();
                        if (!isValid()) {
                            add(new AttributeModifier("class", "errorField"));
                        }
                    };