2014-02-19 28 views
4

写在JSP:为什么jsp触发PropertyNotFound?

${a.b.c} 

抛出 'C' PropertyNotFound,但是写

<s:property value="#a.b.c"/> 

工作正常。

我很感激,如果有人能解释为什么${a.b.c}不起作用?

更新:

在同一JSP,访问到另一个bean f${a.f.d}它正确地找到d

我已检查属性c${a.b.c}存在。在B

+1

看看这个http://struts.apache.org/release/2.3.x/docs/ognl.html – Babel

+0

感谢@looser您的联系是有益的。不过,我更新了这个问题,强调$ {}符号实际上是查找其他属性。 – ejaenv

+0

'b'是否被实例化?你能发布B和C对象吗(只是最小的部分)? –

回答

1

尼斯Question.If您还没有指定的getter setter方法属性C,那么将发生Propertynotfound

${a.b.c} 

<s:property value="#a.b.c"/> 

这个错误不会导致错误。不同之处在于$ {}对getter setters起作用,因为它是使用valuestack中的getter setter读取的OGNL。

只需在b类中写入getter setter即可。 $ {a.b.c}将开始工作。例如,如果c是公共字符串C,那么,

public String getC() { 
    return c; 
} 
public void setC(String c) { 
    this.c = c; 
}