一尘不染

为什么jsp会触发PropertyNotFound?

jsp

用JSP编写:

${a.b.c}

抛出’c’PropertyNotFound,但是写

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

工作良好。

如果有人可以解释为什么${a.b.c}不起作用,我将不胜感激。

更新:

在相同的JSP,访问到另一个豆f${a.f.d}它找到d正确。

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


阅读 415

收藏
2020-06-10

共1个答案

一尘不染

很好的问题。如果您尚未在b中为属性c指定getter设置方法,则Propertynotfound对于

 ${a.b.c}

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

不会导致错误。区别在于$ {}适用于getter设置程序,因为它是OGNL,它是使用valuestack中的getter设置程序读取的。

只需在b类中编写getter setter。$ {abc}将开始工作。例如,如果c是公共字符串c,

public String getC() {
    return c;
}
public void setC(String c) {
    this.c = c;
}
2020-06-10