【发布时间】:2018-10-29 23:29:05
【问题描述】:
在将视图变量封装到 POJO 类并将其提供给模板处理器期间,是否可以使用自定义注释来限制模板引擎可以调用的方法?由于继承,无法通过私有方法限制可见性。
我正在将 FreeMarker 与 Spring MVC 一起使用。
模板处理器从控制器接收 POJO 类:
model.addAttribute("view", new SamplePOJO(this));
SamplePOJO 类:
public final class SamplePOJO extends View
{
public SamplePOJO(MasterController<?> _inject)
{
super(_inject);
}
@CustomAnnotationOnValidMethods
public String getValid_value()
{
return "valid call";
}
@Override
public String getInvalid_value()
{
return "invalid call";
}
}
模板:
<p>Valid invocation: ${view.valid_value}</p>
<p>Also valid but I want this to be impossible: ${view.invalid_value}</p>
【问题讨论】:
-
通过
protected方法限制可见性怎么样?还是包私有方法?
标签: java spring-mvc templates freemarker