【问题标题】:JSP Get property | <jsp:getPropertyJSP 获取属性 | <jsp:getProperty
【发布时间】:2014-02-08 10:09:23
【问题描述】:

我正在尝试使用以下不带 jsp:useBean 标记的 jsp 标记。 在 servlet 中设置值并转发到 jsp:

request.setAttribute("person", p);

在jsp中试图获取价值:

<jsp:getProperty name="person" property="title"/>

有时会获取值,有时会抛出以下异常:

org.apache.jasper.JasperException: file:/index.jsp(17,0) 
jsp:getProperty for bean with name 'person'. 
Name was not previously introduced as per JSP.5.3

请说明为什么这种行为是不可预测的?

【问题讨论】:

    标签: java jsp tags


    【解决方案1】:

    我猜你使用的是 tomcat6 或更高版本,对吧?

    在调用jsp:getProperty 之前尝试使用jsp:useBean 标记再次引用bean。它可能会起作用:

    <jsp:useBean id="person" class="xxx.xxx.Person" />
    <jsp:getProperty name="person" property="title" />
    

    这可能是tomcat的一个bug。看看这个:https://issues.apache.org/bugzilla/show_bug.cgi?id=48701

    【讨论】:

    • 是的,我正在使用 tomcat 6。它肯定会工作,但我正在准备考试。他们在没有使用 jsp:usebean 的情况下问了这样的问题。所以,我想确保它是否有效我应该回复什么?
    • @user3085390:告诉他们这是tomcat的bug,或者使用旧版本的tomcat。
    • 如果我使用旧版本,那么我不需要使用 jsp:usebean 标签?我可以直接获取/设置会话/请求范围中可用的 bean 的属性吗?
    • @user3085390:是的,但你必须自己测试。顺便说一句,在问题页面中,有错误的详细描述。
    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多