据我所知,EL 规范中没有赋值运算符,任何使用赋值运算符的尝试都会导致 ParseException。那么 setValue 方法有什么意义呢?我已经为我正在开发的自定义解析器实现了它,但我不知道如何测试它。
最佳答案
它被其他人调用 ValueExpression#setValue()
反过来,它又被其他实现 EditableValueHolder
的 JSF 组件所使用。接口(interface),如UIInput
其中有 setValue()
方法。
这个 JSF 示例,
<h:inputText value="#{bean.property}" />
在幕后是否基本上是(为简洁起见,省略了上下文/转换/验证/等)
bean.setProperty(request.getParameter(component.getClientId(facesContext)))
setProperty()
调用最终由ELResolver#setValue()
完成。 .
如果您没有在 Web 应用程序中的任何地方使用 JSF,那么您不一定需要担心它。如果您无论如何都想在 JSF 上测试它,请使用 our JSF wiki page 中的 Hello World 示例。 .
关于java - 在什么条件下调用 ELResolver 的 setValue 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435938/