有两个问题:
> Scriptlets和EL不共享相同的范围. ${drug}中的药物必须与页面,请求,会话或应用程序范围中的现有属性的名称相匹配.如果您在scriptlet中而不是在控制器中准备药物,那么您应该自己将其作为属性放在其中一个范围内.
Drug drug = new Drug();
// ...
request.setAttribute("drug", drug);
%>
>(部分由Nathan回答),EL依赖于Javabeans specification. ${drug.propertyName}需要公共方法getPropertyName()用于非布尔属性,或者isPropertyName()用于布尔属性.所以,这应该做
public class Drug {
private boolean nonAuthorative;
public boolean isNonAuthorative() {
return nonAuthorative;
}
// ...
}
同
(注意外壳!)