0

jsfアプリケーションの実行でいくつかの例外が発生しています。これは私のxhtmlコードです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"   
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">

        <f:view> 
            <h:head><title>Index</title></h:head>
                <body>
                <h:form>
                    <h:outputText value="#{login.userName}"></h:outputText><br/>
                    <h:inputText id="userId" value="#{emp.userId}"></h:inputText>
                    <h:commandButton action="#{emp.check}" value="check"/>
                </h:form>
            </body>
        </f:view>   
 </html>

ここでのログインはマネージドBeanです。Beanからユーザー名を取得し、それを表示しようとしています。そして、empは私がここでuseridを与えているもう1つのBeanです。サーバーでこれを実行すると、次の例外が発生します。

Stacktrace:] with root cause
java.lang.IllegalStateException: Component javax.faces.component.UIViewRoot@11a700a not expected type.  Expected: javax.faces.component.UIOutput.  Perhaps you're missing a tag?
    at com.sun.faces.taglib.html_basic.OutputTextTag.setProperties(OutputTextTag.java:126)
    at javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:686)
4

2 に答える 2

1

このコードを使ってみてください!

<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"   
           xmlns:h="http://java.sun.com/jsf/html"
           xmlns:f="http://java.sun.com/jsf/core"
           xmlns:ui="http://java.sun.com/jsf/facelets">

    <f:view> 
        <h:head><title>Index</title></h:head>
            <body>
            <h:form>
                <h:outputText value="#{login.userName}"></h:outputText><br/>
                <h:inputText id="userId" value="#{emp.userId}"></h:inputText>
                <h:commandButton action="#{emp.check}" value="check"/>
            </h:form>
        </body>
    </f:view>   
</ui:composition>
于 2013-02-21T05:22:15.280 に答える
-1

コードを更新し、次のように<html>内部<f:view>に配置します。

<f:view>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

        <html xmlns="http://www.w3.org/1999/xhtml"   
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:f="http://java.sun.com/jsf/core">

           //facelet code..

         </html>
</f:view> 
于 2013-02-21T06:07:50.203 に答える