相关疑难解决方法(0)

javax.el.PropertyNotFoundException:属性'foo'在类型java.lang.Boolean上不可读

我有一个看起来像这样的类:

public class ScoreDefinition {

    protected Boolean primary;

    public Boolean isPrimary() {
        return primary;
    }

    public void setPrimary(Boolean value) {
        this.primary = value;
    }

}
Run Code Online (Sandbox Code Playgroud)

我试图primary在EL中访问它的属性,如下所示:

<c:forEach var="score" items="${scores}">
    <input type="checkbox"
           value="${score.primary}"
           name="someName"
           class="textField"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

但我得到了例外:

javax.el.PropertyNotFoundException: Property 'primary' not readable on type java.lang.Boolean
    at javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:280)
    at javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:230)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_c_005fforEach_005f2(projectBlocks_jsp.java:806)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_c_005fif_005f2(projectBlocks_jsp.java:709)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_form_005fform_005f0(projectBlocks_jsp.java:245)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspService(projectBlocks_jsp.java:150)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) …
Run Code Online (Sandbox Code Playgroud)

jsp boolean el propertynotfoundexception

26
推荐指数
2
解决办法
2万
查看次数

javax.el.PropertyNotFoundException:在com.example.Bean类型上找不到属性'foo'

我有结果

Query query = session.createQuery("From Pool as p left join fetch p.poolQuestion as s");
Run Code Online (Sandbox Code Playgroud)

查询,我想在JSP上显示它.

我有循环:

<c:forEach items="${pools}" var="pool"> 

    <p>${pool.name}</p>

</c:forEach>
Run Code Online (Sandbox Code Playgroud)

我想显示poolQ​​uestion表(连接表)的结果.我想要显示的值是"回答".

我该怎么做?

<c:forEach items="${pools}" var="pool"> 
    <p>${pool.answer}</p>
    <p>${pool.name}</p>             
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.

错误是:

  org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 21

18:     <c:forEach items="${pools}" var="pool"> 
19:             
20:             <p>${pool.name}</p>
21:             <c:out value="${pool.poolQuestion.answer}"/>
22:             
23:     </c:forEach>
24: 

    SEVERE: Servlet.service() for servlet appServlet threw exception
javax.el.PropertyNotFoundException: Property 'answer' not found on type com.pool.app.domain.Pool
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
    at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
    at javax.el.BeanELResolver.property(BeanELResolver.java:300)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
    at …
Run Code Online (Sandbox Code Playgroud)

jsp jstl el javabeans propertynotfoundexception

25
推荐指数
2
解决办法
11万
查看次数

Java:如何命名布尔属性

我只是在Webapp中有一点惊喜,我在.jsp页面中使用EL.

我添加了一个布尔属性并抓住了我的头,因为我已经命名了一个布尔"isDynamic",所以我可以这样写:

<c:if test="${page.isDynamic}">
   ...
</c:if>
Run Code Online (Sandbox Code Playgroud)

我发现哪个更容易阅读:

<c:if test="${page.dynamic}">
   ...
</c:if>
Run Code Online (Sandbox Code Playgroud)

但是.jsp无法编译,错误如下:

javax.el.PropertyNotFoundException: Property 'isDynamic' not found on type com...
Run Code Online (Sandbox Code Playgroud)

我发现我的IDE(我花了一些时间注意它),在生成getter时,生成了一个名为的方法:

isDynamic()
Run Code Online (Sandbox Code Playgroud)

代替:

getIsDynamic()
Run Code Online (Sandbox Code Playgroud)

一旦我通过getIsDynamic()手动替换了isDynamic(),一切都运行正常.

所以我在这里有两个问题:

  1. 使用"is"启动布尔属性的名称是不是很糟糕?

  2. 不管是不是坏了,IntelliJ是否通过自动生成名为isDynamic而不是getIsDynamic的方法犯了错误

java jsp el

16
推荐指数
2
解决办法
2万
查看次数

尝试解析EL中的布尔属性时出现javax.el.PropertyNotFoundException

我有以下树节点类:

public abstract class DocumentTreeNode extends TreeNodeImpl implements javax.swing.tree.TreeNode
{
    private Boolean isToC;

    ...

    public Boolean isToC()
    {
        return isToC;
    }

    public void setToC(Boolean isToC)
    {
        this.isToC = isToC;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的复选框,指示文档是否包含在任何内容中.但是,当试图从JSF 2 EL中引用它时

...
<h:selectBooleanCheckbox value="#{node.isToC}" />
...
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

引起:javax.el.PropertyNotFoundException:/main.xhtml @ 541,64 value ="#{node.isToC}":类'ChapterTreeNode'没有属性'isToC'.

(我想我几乎尝试了所有组合,至少我觉得这样...... ;-))

如何解决该布尔属性?需要改变什么?

jsf boolean el naming-conventions propertynotfoundexception

13
推荐指数
1
解决办法
2万
查看次数

无法读取JSP EL中的Boolean属性

如果一个object属性声明为Boolean类型(不是原始boolean)那么EL识别它似乎有问题!

假设您有以下对象

class Case{
     private Boolean  valid;

     public Boolean isValid(){
         return this.valid;
     }

     public void setValid(Boolean val){
         this.valid = val;
     }
}
Run Code Online (Sandbox Code Playgroud)

假设我们在名称为"case"的请求中放置了Case类型的对象,然后我在JSP中尝试这个:

<td>Object is ${case.valid ? "Valid":"Invalid"} </td>
Run Code Online (Sandbox Code Playgroud)

这给了我错误"有效"不是对象Case的属性!如果我将有效从布尔值更改为原始布尔值,它就可以了!

这是EL中布尔类型的已知问题,它们不被识别为布尔值而是被识别为Java"普通"对象?处理这个问题的正确方法是什么?

谢谢

jsp el

12
推荐指数
2
解决办法
1万
查看次数

以"is"开头的布尔属性不起作用

我有一个使用JSF 2.1和PrimeFaces的项目.我试图使用简单的<h:outputText>引用#{myBean.matriz},我得到了这个错误:

SEVERE: javax.el.PropertyNotFoundException: ... value="#{myBean.matriz}": Missing Resource in EL implementation: ???propertyNotReadable???
Run Code Online (Sandbox Code Playgroud)

吸气剂是:isMatriz().应该是getMatriz()吗?

getter boolean el javabeans jsf-2

8
推荐指数
1
解决办法
9769
查看次数

如何访问EL表达式语言$ {}中的对象

如果我有

ArrayList<Person> persons
Run Code Online (Sandbox Code Playgroud)

我如何在EL中访问它?

<c:foreach items="${what goes here??}" var="person">${person.title}</c:foreach>
Run Code Online (Sandbox Code Playgroud)

jsp jstl el

7
推荐指数
1
解决办法
1万
查看次数