java - 如何检索 JSP 页面中 POJO 字段的注释(JPA 和 Hibernate)

标签 java spring hibernate jsp annotations

我有一个 Spring MVC Web 应用程序,我在其中使用 JPA 和 Hibernate 注释(加上我自己的自定义注释)。 假设我有这个对象:

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

有没有办法从jsp页面获取我的对象的注释值? 类似的东西

${User.name.Size.min}

我希望我已经说清楚了。

提前谢谢

最佳答案

听起来您不应该这样做,但这可能会帮助您开始。我会创建另一个类来进行反射(reflection)。 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();
        }

    }

}

关于java - 如何检索 JSP 页面中 POJO 字段的注释(JPA 和 Hibernate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976396/

相关文章:

java - "line.separator"的实际值是多少?

java - 我是否需要同步访问仅由一个线程修改的列表?

spring - 软件包org.springframework.aop.framework不存在

java - 为什么不需要通过配置公开 JavaMailSender 即可 Autowiring ,Spring Boot 1.5.8

hibernate - 无法加载类 [oracle.jdbc.driver.Oracle 驱动程序]

java - 获取 ArrayList 所有可能排列的 ArrayList

java - spring-boot-starter-web 和 spring-boot-starter-web-services 和 spring-boot-starter-jersey 之间的区别

javascript - Apache Tomcat 错误 : 404 page not found while the other jsp runs properly

java - 将 @Sort 注释与 List<Object> 一起使用

java - 使用 HttpClient 发布返回错误请求