这个表达标签对我来说是正确的值


虽然我无法恢复毒品的价值。不可在C标签中使用

<c:if test="${drug.NonAuthoritative}">&nbsp;<bean:message key="WriteScript.msgNonAuthoritative"></bean:message></c:if>

方法是
public Boolean NonAuthoritative() {
    return nonAuthoritative;
}

最佳答案

有两个问题:

  • 脚本和EL不共享相同的作用域。 drug中的${drug}必须与页面,请求,会话或应用程序范围中现有属性的名称匹配。如果要在scriptlet中而不是在控制器中准备drug,则应自己将其作为属性放在这些作用域之一中。
    <%
        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;
        }
    
        // ...
    }
    


    <c:if test="${drug.nonAuthoritative}">
    

    (注意外壳!)
  • 08-28 17:36