开发者

Simple primefaces application not working

开发者 https://www.devze.com 2023-03-31 01:31 出处:网络
I am trying to build simple JSF application using primefaces but somehow primefaces components are not getting rendered properly. I dont understand what is going wrong.

I am trying to build simple JSF application using primefaces but somehow primefaces components are not getting rendered properly. I dont understand what is going wrong.

I am trying to display following Facelet file :

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <link type="text/css" 
                rel="stylesheet"
                href="/Themes/primefaces-dot-luv/theme.css" />
    </h:head>
    <h:body>
        <p:spinner value="100" style="height: 10px" />
        <br/>
        <p:button value="Navigate"></p:button>
    </h:body>
</html>

I am using eclipse to run the app on tomcat server. When I run the application and view the page source in browser(firefox) I get following source :

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:p="http://primefaces.prime.com.tr/ui">
    <head>
        <link type="text/css" rel="stylesheet" href="Themes/primefaces-dot-luv/theme.css" />
    </head>
    <body>
        <p:spinner value="100" style="height: 10px"></p:spinner>
        <br />
        <p:button value="Navigate"></p:button>
    </body>
</html>

I think PrimeFaces components are not getting rendered properly. Other JSF tags like <h:head> and <h:body> are converted correctly to <head> and <body> elements respectively. Only tags starting with <p:> are not converted.

Following is my project structure :

Simple primefaces application not working

My web.xml looks like this:

<?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>HelloJSF</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.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开发者_如何学Go</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>none</param-value>
  </context-param>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
  <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>
</web-app>

I am using eclipse , tomcat server. JSF 2 and primefaces 3 library.

Hi, After some close inspection of entire project I found out that primefaces jar dowlonaded from site did not had any classes. Jar itself was corrupt. I downloaded same jar thrice then also jar was getting corrupt. So I downloaded zip file containing source and binaries and my application started working.


Try changing your web.xml servlet mapping:

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
 </servlet-mapping>

The way to tell if the Facelets Servlet is processing your xhtml is to look at what the browser receives. If it looks like your xhtml file then you have something mis-configured.


Your need change

xmlns:p="http://primefaces.prime.com.tr/ui"

to

xmlns:p="http://primefaces.org/ui"


You should change your namespace into xmlns:p="http://primefaces.org/ui"

and implement button like this way

 <p:commandButton value="Home" process="@this" action="actionMethod()" immediate="true" rendered="true or renderingMethod()" />
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号