JSF 不解析 # 标签
Posted
技术标签:
【中文标题】JSF 不解析 # 标签【英文标题】:JSF not parsing # tagsJSF 不解析 # 标签 【发布时间】:2012-08-12 09:50:19 【问题描述】:我是 JSP/JSF 的新手,我的 JSP 遇到了问题。
我有几个类似这样的标签:
<div class="summary">
<h:outputText escape="false"
value="#FrequencyDistManagedBean.summary"/>
</div>
但是当我在浏览器中查看 jsp 时,我得到了这个:
<div class="summary">
#FrequencyDistManagedBean.summary
</div>
它解析 h:outputText 部分,但不解析散列/花括号部分。我为价值所付出的并不重要,它永远不会被解析。没有记录错误,它只是不起作用。我什至可以输入 #foo.bar (期望它会因某种错误而失败)并且没有任何区别。
我将 faces servlet 映射到 /faces/*(或任何默认值),我的 url 看起来像:http://www.mysite.com:8080/MyProject/faces/FrequencyDist.jsp(我正在运行 Tomcat 6,并使用 JSF 1.2)
我做错了什么?
【问题讨论】:
你能把你的面孔配置和 web xml 也发布出来 这种行为发生在您的所有 jsps 中还是仅在某些特定情况下?如果是第一种情况,如果您发布 web.xml 配置,我们可以提供帮助。如果没有,那么只需发布给您带来问题的 jsp 的sscce。 同意路易吉。贴个小例子,那就更好了 【参考方案1】:根据this older SO question,将您的 web.xml 文件的版本更改为 2.5:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
同时设置<faces-config ... version="1.2">
谷歌搜索jsf not evaluating el expression
将该链接放在搜索结果的顶部。
与您当前的问题无关,但您很快就会遇到这个问题:
验证您对控制器 bean 名称的使用;我指的是FrequencyDistManagedBean
开头的大写F
。默认情况下,bean 名称总是以小写字母开头。当您明确命名一个 bean 时,您应该遵循相同的约定。
【讨论】:
这里是:guestwho.com/java/web.xml guestwho.com/java/faces-config.xml 所有 JSP、所有标签都会发生这种情况。感谢您的帮助! 它不允许我在这里发布内容 您的链接确认了问题,这里的解决方案应该可以解决它。 谢谢,我在 faces-config 中添加了版本,但它不会部署:必须为元素类型“faces-config”声明属性“version”【参考方案2】:没关系,删除 doctype 并将 faces-config 元素替换为:
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
你太棒了,非常感谢你的帮助!!
【讨论】:
以上是关于JSF 不解析 # 标签的主要内容,如果未能解决你的问题,请参考以下文章
JSF/Facelets:为啥将 JSF/Facelets 与 HTML 标签混合不是一个好主意?
来自 http://xmlns.jcp.org 命名空间的标签不呈现,而 http://java.sun.com/jsf 工作正常