【发布时间】:2012-07-12 05:45:08
【问题描述】:
我在将旧应用程序从 MyFaces 1.1 迁移到 MyFaces 1.2 时遇到问题。在旧应用程序中,如果 a 有一个 ManagedBean exampleMBean,我可以通过 ${exampleMBean.somePropertie} 读取这些属性,但是在将 MyFaces 迁移到 MyFaces 1.2 后,这种访问不起作用,总是返回 null。
如果我尝试使用 ,那么这不起作用。标记无法检索 ${exampleMBean.someValue} 值。为了解决这个问题,我将 c:if 测试事件替换为 t:div render="#{exampleMBean.someValue}",现在可以使用了。
如果我尝试使用具有显式值的 JSTL 标记,它们会起作用,但是当我尝试访问“jsf 上下文”时,无法检索到值。
我正在使用 JBoss 4.2.3,我的项目将 org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL 设置为 true 以使用我的项目附带的 myfaces 库。
提前致谢。
【问题讨论】:
-
只是问,但是,您是否尝试使用
#{exampleBean.someValue}而不是${exampleBean.someValue}?它适用于您的 t:div。 EL 表达式用#{} 括起来。 -
您好,当我尝试从 ${ 更改为 #{ 时收到此错误:根据标记文件中的 TLD 或属性指令,属性测试不接受任何表达式
-
有时配置问题会阻止 JSTL 标记解释 EL 表达式。您使用的是哪个版本的 JSTL?。
-
您能发布您的 xmlns 声明吗?
-
(我很抱歉格式化,但我是新来的......) java.sun.com/jsp/jstl/core" %> java.sun.com/jsf/html" prefix="h"%> java.sun.com/jsf/core" prefix="f"%> java.sun.com/jsp/jstl/functions" prefix="fn"%> myfaces.apache.org/tomahawk" prefix="t"%> java.sun.com/jsp/jstl/fmt" %>