我正在研究JSF Web应用程序.每当我更改CSS文件并首次部署程序时,CSS文件中的更改都不会反映出来.我在不同情况下测试过它.这是怎么造成的,我该如何解决?
如何在JSF 1.1中包含相对于上下文路径的CSS样式表?
<link href="{CONTEXT}/css/style.css" rel="stylesheet" type="text/css"/>
Run Code Online (Sandbox Code Playgroud)
<link href="#{resource['css:styles.css']}" rel="stylesheet" type="text/css"/>
Run Code Online (Sandbox Code Playgroud) 我正在使用ibm websphere并创建一个动态Web项目.我的所有JSP文件都在我的WEB-INF文件夹中,我在我的web.xml文件中使用servlet映射 使它们可以访问.到目前为止这个工作得很好.但是我的CSS有问题.与往常一样,我的CSS文件位于WebContent名为css的文件夹中.继承我的链接jsp
<link rel="stylesheet" href = "css/styles.css">
Run Code Online (Sandbox Code Playgroud)
我没有运气让我的CSS显示......
我错过了什么?
尝试使用下面的标记在JSF2中包含样式表
<h:outputStylesheet name="css/test.css" />
Run Code Online (Sandbox Code Playgroud)
然而,它不是选择和样式表的目录结构如下
的WebContent - > CSS - > test.css
有谁可以帮我解决这个问题?
我想在PrimeFaces(v5.3)图表上绘制一些额外的行,特别是在线图上.查看jqPlot示例(PrimeFaces使用jqPlot绘制图表),此示例显示了我想要做的事情.
我使用了这个答案中描述的方法.
通过设置扩展程序,我可以运行自己的javascript函数,这允许我更改不同类型的配置.
创建模式时的Java:
private LineChartModel initLinearModel()
{
LineChartModel model = new LineChartModel();
model.setExtender("chartExtender");
LineChartSeries series1 = new LineChartSeries();
series1.setLabel("Series 1");
series1.set(1, 2);
series1.set(2, 1);
series1.set(3, 3);
series1.set(4, 6);
series1.set(5, 8);
model.addSeries(series1);
return model;
}
Run Code Online (Sandbox Code Playgroud)
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:p="http://primefaces.org/ui">
<h:outputScript library="jqplot-plugin"
name="jqplot.canvasOverlay.min.js" />
<h:outputScript library="js" name="extra_config.js" />
<h:head>
<title>Chart</title>
</h:head>
<h:body>
<p:chart type="line" model="#{primeChart.lineModel1}"
style="height:300px;" />
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
Javascript功能:
function chartExtender() {
this.cfg.grid = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Primefaces的Picklist.呈现页面时,Chrome中的javascript引擎无法找到Primefaces对象.我收到以下错误'Uncaught ReferenceError:PrimeFaces未定义'.我错过了在我的.xhtml文件中包含任何资源(js)吗?请指教.谢谢.
XHTML
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<link rel="stylesheet" type="text/css"
href="../jquery-ui-1.8.23.custom/css/ui-lightness/jquery-ui-1.8.23.custom.css" />
<link rel="stylesheet" type="text/css" href="css/form.css" media="all" />
<script src="../jquery-ui-1.8.23.custom/js/jquery-1.8.0.min.js"></script>
<script
src="../jquery-ui-1.8.23.custom/js/jquery-ui-1.8.23.custom.min.js"></script>
</head>
<h:body>
<form id="form_486588" class="appnitro" method="post">
<div class="form_description"></div>
<p:pickList id="pickList" value="#{editorsMB.editors}" var="editor"
itemLabel="#{editor}" itemValue="#{editor}" />
<p:commandButton id="citySubmit" value="Submit"
style="margin-top:5px" />
</form>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
管理豆
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.model.DualListModel;
@ManagedBean(name = "editorsMB")
@SessionScoped
public class AdminEditorsBean { …Run Code Online (Sandbox Code Playgroud) 是否最好使用JSF h:outputScript或h:outputStylesheet何时script/ style元素可能适合您?前者对后者有什么优势?
我如何告诉GlassFish服务器,将所有JS,CSS和PNG文件存储到浏览器缓存中以减少HTTP GET请求?
我正在使用JSF和PrimeFaces.
这是我的项目结构:

我要将css文件添加到HeaderTester.xhtml文件中:
这是HeaderTester.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://xmlns.jcp.org/jsf/html">
<h:head>
<title>Here is header</title>
<link rel="stylesheet" type="text/css" href="headerStyle.css"/>
</h:head>
<h:body>
This is Header tester class
<div id="header">
<h3>Sajjad HTlo</h3>
</div>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
CSS 文件:
*{
margin: 0;
padding: 0;
}
#header{
background-color: gray;
width: 100%;
height: 60px;
}
h1{
color: silver;
}
Run Code Online (Sandbox Code Playgroud)
但只在结果中显示文本!
我有几个WebSockets端点,如,
wss://localhost:8181/ContextPath/Push
Run Code Online (Sandbox Code Playgroud)
所有这些端点URL都在单独的外部JavaScript文件中进行硬编码(.js).这些JavaScript文件在需要时包含在各自的XHTML文件中.应该以编程方式评估主机名和上下文路径,而不是在需要它们的地方进行硬编码.
主机名(localhost:8181)可以使用JavaScript获得,document.location.host但JavaScript 中没有标准/规范方式来获取应用程序运行的上下文路径.
我正在做类似以下的事情.
在主模板上声明全局JavaScript变量,如下所示.
<f:view locale="#{bean.locale}" encoding="UTF-8" contentType="text/html">
<f:loadBundle basename="messages.ResourceBundle" var="messages"/>
<ui:param name="contextPath" value="#{request.contextPath}"/>
<ui:insert name="metaData"></ui:insert>
<h:head>
<script type="text/javascript">var contextPath = "#{contextPath}";</script>
</h:head>
<h:body id="body">
</h:body>
</f:view>
</html>
Run Code Online (Sandbox Code Playgroud)
其中主机名和上下文路径被硬编码的JavaScript文件包括在相应的模板客户端或模板的北,南,东和西的任何部分中,如下所述.
<html lang="#{bean.language}"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:form>
<h:outputScript library="default" name="js/websockets.js" target="head"/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
仅为了观点,websockets.js看起来如下(你可以简单地忽略它).
if (window.WebSocket) {
// The global variable "contextPath" is unavailable here
// because it is declared afterwards in the generated HTML.
var ws = new WebSocket("wss://"+document.location.host + contextPath + …Run Code Online (Sandbox Code Playgroud)