代码之家  ›  专栏  ›  技术社区  ›  Ranju Pillai

JSF标记未工作

  •  0
  • Ranju Pillai  · 技术社区  · 7 年前

    我是JSF新手,面临一个问题。我开发了一个包含标签的小应用程序 <h:inputText> . 当我执行应用程序时,它不会显示文本输入部分。 代码如下:

    使用者java: (托管Bean)

    package com.JSF.UIExample;
    
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    
    @ManagedBean(name = "user", eager = true)
    @RequestScoped
    public class User {
        private String name;
        private String password;
        private String email;
        private String gender;
        private String address;
    
        public User(){  }
        // getter and setter
    }
    

    细节xhtml: (创建用户注册详细信息)

    <!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://xmlns.jcp.org/jsf/html" 
    xmlns:f="http://xmlns.jcp.org/jsf/core">
    
    <h:head>
        <title>User Registration</title>
    </h:head>
    
    <h:body>
        <h:form id="form">
            <table>
                <tr>
                    <td><h:outputLabel for="username"><b>Username:</b></h:outputLabel></td>
                    <td><h:inputText id="name-id" value="#{user.name}" /></td>
                </tr>
                <tr>
                    <td><h:outputLabel for="password"><b>Password:</b></h:outputLabel></td>
                    <td><h:inputSecret id="password-id" value="#{user.password}" /></td>
                </tr>
                <tr>
                    <td><h:outputLabel for="email">Email:</h:outputLabel></td>
                    <td><h:inputText id="email-id" value="#{user.email}" /></td>
                </tr>
                <tr>
                    <td><h:outputLabel for="gender">Gender:</h:outputLabel></td>
                    <td><h:selectOneRadio value="#{user.gender}">
                            <f:selectItem itemValue="Male" itemLabel="Male" />
                            <f:selectItem itemValue="Female" itemLabel="Female" />
                        </h:selectOneRadio></td>
                </tr>
                <tr>
                    <td><h:outputLabel for="address">Address:</h:outputLabel></td>
                    <td><h:inputText id="address-id" value="#{user.address}" cols = "50" rows = "5" /></td>
                </tr>
            </table>
            <h:commandButton value = "Submit" action = "Response.xhtml"></h:commandButton>
        </h:form>
    </h:body>
    </html>
    

    回答xhtml:

    <!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://xmlns.jcp.org/jsf/html"
        xmlns:f="http://xmlns.jcp.org/jsf/core">
    
    <h:head>
        <title>User Details</title>
    </h:head>
    
    <h:body>
        <h2>
            <h:outputText value="Hello #{user.name}" />
        </h2>
        <h4>You have been registered successfully. Following are your
            details</h4>
        <table>
            <tr>
            <td><b>Email:</b></td>
            <td><h:outputText value = "#{user.email}"/></td>
            </tr>
            <tr>
            <td><b>Gender:</b></td>
            <td><h:outputText value = "#{user.gender}"/></td>
            </tr>
            <tr>
            <td><b>Address:</b></td>
            <td><h:outputText value = "#{user.address}"/></td>
            </tr>
        </table>
    </h:body>
    

    网状物xml:

    <?xml version = "1.0" encoding = "UTF-8"?>
    <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
       xmlns = "http://java.sun.com/xml/ns/javaee" 
       xmlns:web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee 
       http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       id = "WebApp_ID" version="2.5">
    
       <welcome-file-list>
          <welcome-file>faces/Detail.xhtml</welcome-file>
       </welcome-file-list>
    
       <!-- 
          FacesServlet is main servlet responsible to handle all request. 
          It acts as central controller.
          This servlet initializes the JSF components before the JSP is displayed.
       -->
    
       <servlet>
          <servlet-name>Faces Servlet</servlet-name>
          <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
       </servlet>
    
       <servlet-mapping>
          <servlet-name>Faces Servlet</servlet-name>
          <url-pattern>/faces/*</url-pattern>
       </servlet-mapping>
    
       <servlet-mapping>
          <servlet-name>Faces Servlet</servlet-name>
          <url-pattern>*.jsf</url-pattern>
       </servlet-mapping>
    
       <servlet-mapping>
          <servlet-name>Faces Servlet</servlet-name>
          <url-pattern>*.faces</url-pattern>
       </servlet-mapping>
    
       <servlet-mapping>
          <servlet-name>Faces Servlet</servlet-name>
          <url-pattern>*.xhtml</url-pattern>
       </servlet-mapping>
    
    </web-app>
    

    Maven依赖项:

            <dependency>
                <groupId>com.sun.faces</groupId>
                <artifactId>jsf-api</artifactId>
                <version>2.1.7</version>
            </dependency>
    
            <dependency>
                <groupId>com.sun.faces</groupId>
                <artifactId>jsf-impl</artifactId>
                <version>2.1.7</version>
            </dependency>
    

    在两个xhtml文件中 xmlns:h=”http://xmlns.jcp.org/jsf/html" 显示“找不到uri的facelet标记库”警告 http://xmlns.jcp.org/jsf/html & xmlns:f=”http://xmlns.jcp.org/jsf/core" 显示“找不到uri的facelet标记库”警告 http://xmlns.jcp.org/