簡體   English   中英

如何在JSP頁面中檢索POJO字段的注釋(JPA和Hibernate)

[英]How to retrieve the annotations (JPA and Hibernate) of a field of a POJO in a JSP page

我有一個Spring MVC Web應用程序,在其中使用JPA和Hibernate批注(加上我自己的自定義批注)。 假設我有這個對象:

public class User{      
    @Size(min = 2, max = 20)
    private String name;
}

有沒有辦法從jsp頁面獲取對象的注釋值? 就像是

${User.name.Size.min}

我希望我已經清楚了。

先感謝您

聽起來您不應該這樣做,但這可能會讓您入門。 我將為反射創建另一個類。 jsp將通過getter查找屬性。

public class UserAnnotationResolver {

    public static FieldAnnotationResolver getName() {
        try {
            return new UserAnnotationResolver().new FieldAnnotationResolver(User.class.getDeclaredField("name"));
        } catch (NoSuchFieldException e) {

        }
        return null;
    }

    public class FieldAnnotationResolver {

        private Field field;

        public FieldAnnotationResolver(Field field) {
            this.field = field;
        }

        SizeAnnotationResolver getSize() {
            return new SizeAnnotationResolver(field.getAnnotationsByType(Size.class)[0]);
        }
    }

    public class SizeAnnotationResolver {

        Size size;

        public SizeAnnotationResolver(Size size) {
            this.size = size;
        }

        public int getMin() {
            return size.min();
        }

        public int getMax() {
            return size.max();
        }

    }

}

實現此目的的另一種方法是創建一個將在注釋中使用的常量:

public class User {      

    public static final int SIZE_NAME_MIN = 2;

    public static final int SIZE_NAME_MAX = 20;

    @Size(min = SIZE_NAME_MIN, max = SIZE_NAME_MAX)
    private String name;
}

您可以在課堂上或其他地方保持不變

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM