Jsf 服务器上的Primefaces Datatable CellEditor空指针异常
我有一个xhtml页面来显示lazyloading数据表,该数据表具有可编辑的逐行单元格。当我运行应用服务器时,它工作正常,但当我在linux服务器上部署它时,它就不工作了 xhtmlJsf 服务器上的Primefaces Datatable CellEditor空指针异常,jsf,primefaces,jsf-2,datatable,xhtml,Jsf,Primefaces,Jsf 2,Datatable,Xhtml,我有一个xhtml页面来显示lazyloading数据表,该数据表具有可编辑的逐行单元格。当我运行应用服务器时,它工作正常,但当我在linux服务器上部署它时,它就不工作了 xhtml <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xht
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:hx="http://xmlns.jcp.org/jsf/passthrough"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:p="http://primefaces.org/ui">
<h:head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>SMS Dasboard</title>
<link rel="shortcut icon" href="../assets/images/favicon.ico" />
<!-- Bootstrap core CSS -->
<link href="../assets/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
<link href="../assets/css/animate.min.css" rel="stylesheet" />
<link href="../assets/css/style.css" rel="stylesheet" />
</h:head>
<h:body>
<div id="wrapper">
<!-- Top -->
<div class="container">
<div class="row">
<div class="top">
<div class="col-lg-6">
<a href="index.xhtml"><img src="../assets/images/logo.png"
class="brand" alt="" /></a>
</div>
<div class="col-lg-6 pull-right">
<div class="links">
<ul>
<li><a href="#"><img
src="../assets/images/settings.png" alt="" /> Settings</a></li>
<li><p:inputText name="" type="button"
value="SMS Balance : 89,000"
styleClass="btn balancebtn btn-default" /></li>
<li><a href="#"><img src="../assets/images/logout.png"
alt=""></img> Logout</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- Top End -->
<!-- Main End -->
<section class="mainsec">
<div class="container">
<div class="row">
<!-- Sidebar -->
<div class="col-lg-2">
<div class="sidebar">
<div class="headings pink">
<h3>latest activities</h3>
</div>
<div class="contentsec">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 19.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 11.12
</div>
<div class="border"></div>
</div>
<div class="contentsec" style="opacity: 0.3;">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 18.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 12.12
</div>
<div class="border"></div>
</div>
<div class="contentsec" style="opacity: 0.3;">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 17.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 09.12
</div>
<div class="border"></div>
</div>
</div>
</div>
<!-- Sidebar End -->
<!-- CenterSec -->
<div class="col-lg-7">
<div class="centersec">
<div class="collapse" id="collapseExample">
<div class="card-block">
<h3>Add Items</h3>
<p>
<h:form styleClass="form-group" id="uppperForm">
<label>Name</label>
<p:inputText styleClass="col-lg-12 input-group" />
<label>Email</label>
<input class="col-lg-12 input-group" />
<label>Phone No</label>
<p:inputText styleClass="col-lg-12 input-group" />
<label>Group</label>
<div class="clearfix"></div>
<p:inputText styleClass="col-lg-9 input-group input1" />
<p:inputText name="" type="button" value="+ Add"
styleClass="col-lg-2 btn1" />
<p:inputText name="" type="button" value="Add Contact"
styleClass="btn editbtn btn-default" />
</h:form>
</p>
</div>
</div>
<div class="additems">
<div class="headings yellow">
<h3>
<a data-toggle="collapse" href="#collapseExample"
aria-expanded="false" aria-controls="collapseExample">Add
Items</a>
</h3>
<span>1612</span>
</div>
<div class="filter">
<img src="../assets/images/items.png" alt="" />
</div>
<div class="listing">
<h:form id="itemsListingForm">
<p:dataTable rows="20" lazy="true"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowKey="#{item.itemId}" id="itemDetailTable"
widgetVar="itemDetailTablewVar" scrollRows="20"
liveScroll="true" scrollHeight="430" scrollable="true"
value="#{productBean.jobLazyDataItemList}" var="item"
filteredValue="#{productBean.itemModelList}"
selectionMode="multiple" editable="true" editMode="cell"
selection="#{productBean.selectedItemList}">
<f:facet name="header">
<p:outputPanel>
<p:inputText id="globalFilter" styleClass="col-lg-12 search"
onkeyup="PF('itemDetailTablewVar').filter()"
placeholder="Search" />
</p:outputPanel>
</f:facet>
<p:ajax event="cellEdit"
listener="#{productController.onCellEditTableComplete(item)}"
update="@([id$=itemDetailTable])" />
<p:column headerText="Item Code" filterBy="#{item.itemCode}"
styleClass="col-lg-2" filterStyle="display:none;">
<h:outputText value="#{item.itemCode}"
style="font-weight: bold" />
</p:column>
<p:column headerText="Item Name" filterBy="#{item.itemName}"
styleClass="col-lg-8" filterStyle="display:none;">
<h:outputText value="#{item.itemName}" />
</p:column>
<p:column headerText="Item Price" filterBy="#{item.itemPrice}"
styleClass="col-lg-2" filterStyle="display:none;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{item.itemPrice}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.itemPrice}" style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
</h:form>
</div>
</div>
<div class="addgroup">
<div class="headings green">
<h3>Add Contact</h3>
<span>798</span>
</div>
<h:form id="contactListForm">
<div class="filter">
<img src="../assets/images/groups.png" alt="" />
<p:selectOneMenu value="#{productBean.selectedGroup}"
styleClass="select pull-right">
<f:selectItem itemLabel="Select" itemValue=""
noSelectionOption="true"></f:selectItem>
<f:selectItems value="#{productBean.contactGroups}"
var="group" itemLabel="#{group.groupName}"
itemValue="#{group.groupName}"></f:selectItems>
<p:ajax listener="#{productController.filterContact}"
event="change" />
</p:selectOneMenu>
</div>
<div class="listing">
<p:dataTable rows="20" lazy="true"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowKey="#{contact.contactId}" id="contactDetailTable"
widgetVar="contactDetailTablewVar" scrollRows="20"
liveScroll="true" scrollHeight="430" scrollable="true"
value="#{productBean.jobLazyDataContactList}" var="contact"
filteredValue="#{productBean.contactModelList}"
selectionMode="multiple" editable="true" editMode="cell"
selection="#{productBean.selectedContactList}">
<f:facet name="header">
<p:outputPanel>
<p:inputText id="globalFilter" styleClass="col-lg-12 search"
onkeyup="PF('contactDetailTablewVar').filter()"
placeholder="Search" />
</p:outputPanel>
</f:facet>
<p:column headerText="Contact Name"
filterBy="#{contact.contactFirstName}"
filterStyle="display:none;">
<h:outputText value="#{contact.contactFirstName}" />
<h:outputText value="#{contact.contactSecondName}" />
</p:column>
<p:column headerText="Contact Number"
filterBy="#{contact.contactMobile}"
filterStyle="display:none;">
<h:outputText value="#{contact.contactMobile}" />
</p:column>
</p:dataTable>
</div>
</h:form>
</div>
</div>
</div>
<!-- CenterSec End -->
<!-- RighrSec -->
<div class="col-lg-3">
<div class="rightsec">
<textarea name="Type Your Message Here..." cols="" rows="8"
class="col-lg-12" placeholder="Type Your Message Here..."></textarea>
<p>maximum characters : 200</p>
<textarea name="Type Your Message Here..." cols="" rows="14"
class="col-lg-12" placeholder="Preview..."></textarea>
<input name="" type="button" value="Update"
class="btn updatebtn btn-default pull-right" />
</div>
</div>
<!-- RighrSec End -->
</div>
</div>
</section>
<!-- Main End -->
<!-- Footer -->
<footer>
<div class="col-lg-12">
<p>© Company Name. 2017</p>
</div>
</footer>
<!-- Footer End -->
</div>
<!-- Core JS Files -->
<!-- <script src="../assets/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="../assets/js/bootstrap.min.js" type="text/javascript"></script> -->
</h:body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>almightyenterprises</display-name>
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>utils.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/secure/*</url-pattern>
</filter-mapping>
<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>server</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>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<mime-mapping>
<extension>woff</extension>
<mime-type>application/x-font-woff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
<mime-mapping>
<extension>otf</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
<mime-mapping>
<extension>png</extension>
<mime-type>image/png</mime-type>
</mime-mapping>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>controller</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
Web.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:hx="http://xmlns.jcp.org/jsf/passthrough"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:p="http://primefaces.org/ui">
<h:head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title>SMS Dasboard</title>
<link rel="shortcut icon" href="../assets/images/favicon.ico" />
<!-- Bootstrap core CSS -->
<link href="../assets/css/bootstrap.min.css" rel="stylesheet" />
<!-- Animation library for notifications -->
<link href="../assets/css/animate.min.css" rel="stylesheet" />
<link href="../assets/css/style.css" rel="stylesheet" />
</h:head>
<h:body>
<div id="wrapper">
<!-- Top -->
<div class="container">
<div class="row">
<div class="top">
<div class="col-lg-6">
<a href="index.xhtml"><img src="../assets/images/logo.png"
class="brand" alt="" /></a>
</div>
<div class="col-lg-6 pull-right">
<div class="links">
<ul>
<li><a href="#"><img
src="../assets/images/settings.png" alt="" /> Settings</a></li>
<li><p:inputText name="" type="button"
value="SMS Balance : 89,000"
styleClass="btn balancebtn btn-default" /></li>
<li><a href="#"><img src="../assets/images/logout.png"
alt=""></img> Logout</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- Top End -->
<!-- Main End -->
<section class="mainsec">
<div class="container">
<div class="row">
<!-- Sidebar -->
<div class="col-lg-2">
<div class="sidebar">
<div class="headings pink">
<h3>latest activities</h3>
</div>
<div class="contentsec">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 19.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 11.12
</div>
<div class="border"></div>
</div>
<div class="contentsec" style="opacity: 0.3;">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 18.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 12.12
</div>
<div class="border"></div>
</div>
<div class="contentsec" style="opacity: 0.3;">
<p>Added 200 new items for 2 groups, Added 200 new items for
2 groups, Added 200 new items for 2 groups</p>
<div class="date">
<img src="../assets/images/date.png" alt="" /> 17.01.2017
</div>
<div class="time">
<img src="../assets/images/time.png" alt="" /> 09.12
</div>
<div class="border"></div>
</div>
</div>
</div>
<!-- Sidebar End -->
<!-- CenterSec -->
<div class="col-lg-7">
<div class="centersec">
<div class="collapse" id="collapseExample">
<div class="card-block">
<h3>Add Items</h3>
<p>
<h:form styleClass="form-group" id="uppperForm">
<label>Name</label>
<p:inputText styleClass="col-lg-12 input-group" />
<label>Email</label>
<input class="col-lg-12 input-group" />
<label>Phone No</label>
<p:inputText styleClass="col-lg-12 input-group" />
<label>Group</label>
<div class="clearfix"></div>
<p:inputText styleClass="col-lg-9 input-group input1" />
<p:inputText name="" type="button" value="+ Add"
styleClass="col-lg-2 btn1" />
<p:inputText name="" type="button" value="Add Contact"
styleClass="btn editbtn btn-default" />
</h:form>
</p>
</div>
</div>
<div class="additems">
<div class="headings yellow">
<h3>
<a data-toggle="collapse" href="#collapseExample"
aria-expanded="false" aria-controls="collapseExample">Add
Items</a>
</h3>
<span>1612</span>
</div>
<div class="filter">
<img src="../assets/images/items.png" alt="" />
</div>
<div class="listing">
<h:form id="itemsListingForm">
<p:dataTable rows="20" lazy="true"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowKey="#{item.itemId}" id="itemDetailTable"
widgetVar="itemDetailTablewVar" scrollRows="20"
liveScroll="true" scrollHeight="430" scrollable="true"
value="#{productBean.jobLazyDataItemList}" var="item"
filteredValue="#{productBean.itemModelList}"
selectionMode="multiple" editable="true" editMode="cell"
selection="#{productBean.selectedItemList}">
<f:facet name="header">
<p:outputPanel>
<p:inputText id="globalFilter" styleClass="col-lg-12 search"
onkeyup="PF('itemDetailTablewVar').filter()"
placeholder="Search" />
</p:outputPanel>
</f:facet>
<p:ajax event="cellEdit"
listener="#{productController.onCellEditTableComplete(item)}"
update="@([id$=itemDetailTable])" />
<p:column headerText="Item Code" filterBy="#{item.itemCode}"
styleClass="col-lg-2" filterStyle="display:none;">
<h:outputText value="#{item.itemCode}"
style="font-weight: bold" />
</p:column>
<p:column headerText="Item Name" filterBy="#{item.itemName}"
styleClass="col-lg-8" filterStyle="display:none;">
<h:outputText value="#{item.itemName}" />
</p:column>
<p:column headerText="Item Price" filterBy="#{item.itemPrice}"
styleClass="col-lg-2" filterStyle="display:none;">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{item.itemPrice}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{item.itemPrice}" style="width:96%" />
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
</h:form>
</div>
</div>
<div class="addgroup">
<div class="headings green">
<h3>Add Contact</h3>
<span>798</span>
</div>
<h:form id="contactListForm">
<div class="filter">
<img src="../assets/images/groups.png" alt="" />
<p:selectOneMenu value="#{productBean.selectedGroup}"
styleClass="select pull-right">
<f:selectItem itemLabel="Select" itemValue=""
noSelectionOption="true"></f:selectItem>
<f:selectItems value="#{productBean.contactGroups}"
var="group" itemLabel="#{group.groupName}"
itemValue="#{group.groupName}"></f:selectItems>
<p:ajax listener="#{productController.filterContact}"
event="change" />
</p:selectOneMenu>
</div>
<div class="listing">
<p:dataTable rows="20" lazy="true"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
rowKey="#{contact.contactId}" id="contactDetailTable"
widgetVar="contactDetailTablewVar" scrollRows="20"
liveScroll="true" scrollHeight="430" scrollable="true"
value="#{productBean.jobLazyDataContactList}" var="contact"
filteredValue="#{productBean.contactModelList}"
selectionMode="multiple" editable="true" editMode="cell"
selection="#{productBean.selectedContactList}">
<f:facet name="header">
<p:outputPanel>
<p:inputText id="globalFilter" styleClass="col-lg-12 search"
onkeyup="PF('contactDetailTablewVar').filter()"
placeholder="Search" />
</p:outputPanel>
</f:facet>
<p:column headerText="Contact Name"
filterBy="#{contact.contactFirstName}"
filterStyle="display:none;">
<h:outputText value="#{contact.contactFirstName}" />
<h:outputText value="#{contact.contactSecondName}" />
</p:column>
<p:column headerText="Contact Number"
filterBy="#{contact.contactMobile}"
filterStyle="display:none;">
<h:outputText value="#{contact.contactMobile}" />
</p:column>
</p:dataTable>
</div>
</h:form>
</div>
</div>
</div>
<!-- CenterSec End -->
<!-- RighrSec -->
<div class="col-lg-3">
<div class="rightsec">
<textarea name="Type Your Message Here..." cols="" rows="8"
class="col-lg-12" placeholder="Type Your Message Here..."></textarea>
<p>maximum characters : 200</p>
<textarea name="Type Your Message Here..." cols="" rows="14"
class="col-lg-12" placeholder="Preview..."></textarea>
<input name="" type="button" value="Update"
class="btn updatebtn btn-default pull-right" />
</div>
</div>
<!-- RighrSec End -->
</div>
</div>
</section>
<!-- Main End -->
<!-- Footer -->
<footer>
<div class="col-lg-12">
<p>© Company Name. 2017</p>
</div>
</footer>
<!-- Footer End -->
</div>
<!-- Core JS Files -->
<!-- <script src="../assets/js/jquery-1.10.2.js" type="text/javascript"></script>
<script src="../assets/js/bootstrap.min.js" type="text/javascript"></script> -->
</h:body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>almightyenterprises</display-name>
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>utils.AuthenticationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/secure/*</url-pattern>
</filter-mapping>
<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>server</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>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<mime-mapping>
<extension>woff</extension>
<mime-type>application/x-font-woff</mime-type>
</mime-mapping>
<mime-mapping>
<extension>ttf</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
<mime-mapping>
<extension>otf</extension>
<mime-type>application/octet-stream</mime-type>
</mime-mapping>
<mime-mapping>
<extension>png</extension>
<mime-type>image/png</mime-type>
</mime-mapping>
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>controller</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.jsf</url-pattern>
<url-pattern>*.xhtml</url-pattern>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
全能企业
login.xhtml
身份验证过滤器
utils.AuthenticationFilter
身份验证过滤器
/稳妥/*
状态保存方法:“客户端”或“服务器”(=默认值)。参见JSF规范2.5.2
javax.faces.STATE_保存方法
服务器
javax.servlet.jsp.jstl.fmt.localizationContext
资源.应用
com.sun.faces.config.ConfigureListener
Facesservlet
javax.faces.webapp.FacesServlet
1.
沃夫
应用程序/x-font-woff
ttf
应用程序/八位字节流
otf
应用程序/八位字节流
巴布亚新几内亚
图像/png
泽西塞尔维特酒店
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.api.json.POJOMappingFeature
真的
com.sun.jersey.config.property.packages
控制器
1.
Facesservlet
/面孔/*
*.jsf
*.xhtml
*.jsp
泽西塞尔维特酒店
/休息/*
在本地机器中工作
你好,请。。。和版本信息以及如何复制的详细说明\n我正在使用Primefaces 5.3