4

我是 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)

我究竟做错了什么 ?

4

2 回答 2

2

根据这个较旧的 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 名称的使用;我指的F是开头的大写字母FrequencyDistManagedBean。默认情况下,bean 名称总是以小写字母开头。当您明确命名一个 bean 时,您应该遵循相同的约定。

于 2012-08-16T04:54:18.883 回答
1

没关系,删除 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">

你摇滚,非常感谢你的帮助!!

于 2012-08-16T08:23:27.887 回答