我对springmvc和velocity模板还不熟悉,但是我正在一个项目中使用它们,并且有一些问题。基本上,我使用一些遗留代码作为模板,但是遗留代码中的语法对我不起作用,我也不知道为什么。我们的团队有一个名为admindata的公共类,它类似于:
public class AdminData {
private long property1;
public void setProperty1 (long property1) {
this.property1 = property1;
}
public long getProperty1() {
return property1;
}
java代码如下所示:
ModelAndView model = new ModelAndView("view");
AdminData data = new AdminData();
... // set some properties of data
model.addObject("data", data);
return model;
然后在我们的速度模板中,我们引用数据对象的属性,如下所示:
${data.property1}
并且该值正确显示在页面上。然后我们有另一个类叫做adminfeatures,它看起来像:
public class AdminFeatures {
private boolean property2;
public void setProperty2(boolean property2) {
this.property2 = property2;
}
public boolean getProperty2() {
return property2;
}
使用与我们用于admindata相同的java代码来设置模型和视图。我遇到的问题是,当我尝试以同样的方式引用adminfeatures中的property2时:
${data.property2}
我无法打印出变量的值。但是,如果我使用以下语法:
$data.getProperty2() // ... or ${data.getProperty2()}
然后我就可以打印出财产的价值。这和java中布尔和布尔的区别有关吗?或者属性1是一个很长的值,而属性2是一个布尔值?
谢谢您。
1条答案
按热度按时间nxagd54h1#
是因为
property2
是布尔值。布尔类型的getter/setter的标准方法约定的形式是isproperty和setproperty。所以你的adminfeatures类应该是:
公共类{私有布尔属性2;