boolean isLifeTimeMember
getter应该是isIsLifeTimeMember()而不是isLifeTimeMember()
我认为这会影响在JSP中调用变量isLifeTimeMember,因为它将查找JSP并映射到isIsLifeTimeMember() getter方法。
由于getter生成器在eclipse中为isLifeTimeMember(),所以会导致错误,因为没有isIsLifeTimeMember()方法。
谢谢。
boolean isLifeTimeMember
getter应该是isIsLifeTimeMember()而不是isLifeTimeMember()
我认为这会影响在JSP中调用变量isLifeTimeMember,因为它将查找JSP并映射到isIsLifeTimeMember() getter方法。
由于getter生成器在eclipse中为isLifeTimeMember(),所以会导致错误,因为没有isIsLifeTimeMember()方法。
谢谢。
Eclipse名称生成规则要求布尔型getter方法应以is
开头。如果变量名已经以is
开头,那么Eclipse认为不需要额外的前缀。
Eclipse有一个设置,用于控制生成的布尔型getter是否使用is
前缀。打开首选项并导航到Java > 代码风格
。在那里,您可以取消选中选项“对返回布尔值的getter使用'is'前缀”。然后,由Eclipse生成的布尔型getter将以"get"开头,就像所有其他getter一样。
顺便说一下,Java中拥有相同名称的字段和方法是没有问题的。
但是,具有以"is"开头的属性名称可能会导致jsp出现问题。如此线程所述,最好避免属性名称读起来像问题(比如isLifeTimeMember),而是直接使用属性本身作为属性名称(lifeTimeMember)。
代码示例:
boolean lifeTimeMember;
public boolean isLifeTimeMember() {
return lifeTimeMember;
}
public void setLifeTimeMember(boolean lifeTimeMember) {
this.lifeTimeMember = lifeTimeMember;
}
如果您在JSP中需要使用此变量,只需使用变量名称"lifeTimeMember"。
isLifeTimeMember
),而是直接使用属性本身作为属性名称(lifeTimeMember
)。 - Ted Hopp当变量为布尔类型时,Eclipse会在变量名前添加is
来形成相应的getter方法名称。例如,如果变量名为boolean present;
,则生成的getter方法名将为isPresent();
不建议在变量名中使用is
。
如果变量名为ispresent
,在JSP中您将通过变量名ispresent
进行查找,它又会查找其getter方法,因为它是布尔类型,所以假设getter方法名为isispresemt();
,但这个方法并不存在,因为在变量名中已经存在is
,Eclipse在生成getter/setter方法时不会再次添加。
因此,预计会抛出异常could not find the field ispresent
。
在字段名中使用is
可能会导致问题,请避免使用。
getIsLifeTimeMember()
。在JSP中,假定已经使用了Get。 - Makotoboolean isLifeTimeMember;
而不是boolean isLifeTimeMember()
。Eclipse 不会为方法生成 getter 和 setter! - Ted Hoppx.lifeMember = true
,不过前缀可以省略)。 - Thilo