当前位置: 首页 > 知识库问答 >
问题:

JSF标记未呈现为HTML

祝允晨
2023-03-14

我第一次接触JSF和JSF标记。xhtml不工作。我的网络。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">
  <display-name>JSFNewProject</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <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>*.xhtml</url-pattern>
  </servlet-mapping>
</web-app>

我faces.config文件里的代码是

<?xml version="1.0" encoding="UTF-8"?>

<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_2_0.xsd"
    version="2.0">
</faces-config>

My code in the First.xhtml is 

<?xml version="1.0" encoding="UTF-8"?>

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html">
   <title>Facelet</title>
   <h:body>
   <h2>hi Amit</h2>
   <h:form>
   <h:outputLabel id="firstNameOutputId" value="firstname:" />
   <h:inputText id="firstNameInputId" value="#{userRegistration.firstName}"> </h:inputText>

   <h:outputLabel id="lastNameOutputId" value="lastname:" />
   <h:inputText id="lastNameInputId" value="#{userRegistration.lastName}"> </h:inputText> 

  <h:outputLabel id="ageOutputId" value="Age" />
  <h:inputText id="ageInputId" value="#{userRegistration.age}"> </h:inputText> 

  <h:outputLabel id="dobOutputId" value="DoB" />
  <h:inputText id="dobInputId" value="#{userRegistration.dob}"> </h:inputText> 

  <h:outputLabel id="cityOutputId" value="City" />
  <h:inputText id="cityInputId" value="#{userRegistration.city}"> </h:inputText> 

  <h:outputLabel id="salaryOutputId" value="Salary" />
  <h:inputText id="salaryInputId" value="#{userRegistration.salary}"> </h:inputText> 

  <h:commandButton id="userRegistrationCmdBtnId" value="Register" action="userRegistration.processRegistration">
  </h:commandButton>
  </h:form>
  </h:body>
</html>

我已经尝试了很多选项,比如将URL映射更改为/faces/*和在Web INF/Lib中包含JAR,但没有用。。。正在寻求帮助。。。。谢谢

共有1个答案

方和宜
2023-03-14

您应该使用JSF标准标签(h: headh: body),我在下面给出了一个示例。

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html 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"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <f:facet name="first">
            <meta http-equiv="Content-Type" 
                  content="text/html; charset=UTF-8" />
            <meta name="viewport" 
                  content="user-scalable=no, 
                  width=device-width, 
                  initial-scale=1.0, 
                  maximum-scale=1.0"/>
        </f:facet>

        <title>layout</title>
    </h:head>

    <h:body>
        <p:layout fullPage="true">
            <p:layoutUnit position="north" size="50">
                <h:outputText value="Top content." />
            </p:layoutUnit>
            <p:layoutUnit position="south" size="100">
                <h:outputText value="Bottom content." />
            </p:layoutUnit>
            <p:layoutUnit position="west" size="300">
                <h:outputText value="Left content" />
            </p:layoutUnit>
            <p:layoutUnit position="east" size="200">
                <h:outputText value="Right Content" />
            </p:layoutUnit>
            <p:layoutUnit position="center">
                <h:outputText value="Center Content" />
            </p:layoutUnit>
        </p:layout>
    </h:body>
</html>

<代码>

 类似资料:
  • 问题内容: 我正在开始一个JSF项目(这是我第一次使用JSF),并且在呈现标签方面遇到问题。我正在Eclipse中进行开发,并将TomCat用作服务器。 我的login.jsp文件:https : //gist.github.com/code-curve/e7e557262d407dddd1f3 我的web.xml文件:https : //gist.github.com/code-curve/52

  • 问题内容: 我想在我的登录表单中添加一些iOS特定的标签属性。如果我查看网页源代码,则不存在自动更正,自动大写和拼写检查这些属性。这是什么原因呢?我正在使用JSF2.x。 问题答案: 这是设计使然。您只能指定JSF组件本身支持的属性(即,它在标签文档的属性列表中列出)。您不能指定任意其他属性,所有这些属性都会被忽略。 有几种解决方法: 如果您已经在使用JSF 2.2+,只需将其指定为passthr

  • 我相信这是与我的配置有关,但我不知道它是什么。 我正在macOS High Sierra上使用IntelliJ IDEA Ultimate 2018.1。 这是我的pom.xl 和XHTML页面: 正如我上面提到的,

  • 所以我在表单中有一个所见即所得的字段,在检索数据时,html标签没有正确呈现。超文本标记语言标记仍然显示在窗体中。我在这里尝试了一些解决方案,我也相信这是解析laravel刀片中超文本标记语言标签的最佳方式。我也尝试过这样做: 但它仍然失败了。显示的数据仍然是原始数据。 数据 刃锉 更新 DD数据

  • 我刚刚使用eatj部署了我的第一个JSF站点。通用域名格式。 我已经使用glassfish在netbean上测试了我的应用程序,带有JSF标签的站点在localhost上运行良好。 我已经通过ftp将项目文件上传到tomcat服务器上的webapps director文件夹。 jsp-api.jar文件存在于Tomcat服务器上的 /lib文件中。 当我重新启动服务器并转到/webapps/myp