这个表达式标签为我输出了正确的值<%= drug.NonAuthoritative%>
虽然我无法恢复药物的价值.NonAuthoritative用于C标签
<c:if test="${drug.NonAuthoritative}"> <bean:message key="WriteScript.msgNonAuthoritative"></bean:message></c:if>
Run Code Online (Sandbox Code Playgroud)
方法是
public Boolean NonAuthoritative() {
return nonAuthoritative;
}
Run Code Online (Sandbox Code Playgroud)
有两个问题:
Scriptlet和EL不共享相同的范围.该drug中${drug}有匹配的页面,请求,会话或应用程序范围的现有属性的名称.如果您正在drug使用scriptlet而不是在控制器中进行准备,那么您应该自己将其作为属性放在其中一个作用域中.
<%
Drug drug = new Drug();
// ...
request.setAttribute("drug", drug);
%>
Run Code Online (Sandbox Code Playgroud)
(部分由Nathan回答),EL依赖于Javabeans规范.对于非布尔属性或布尔属性,${drug.propertyName}需要公共方法.所以,这应该做getPropertyName()isPropertyName()
public class Drug {
private boolean nonAuthorative;
public boolean isNonAuthorative() {
return nonAuthorative;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
同
<c:if test="${drug.nonAuthoritative}">
Run Code Online (Sandbox Code Playgroud)
(注意外壳!)
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |