我很难从特定的PrimeFaces中删除边界<p:panelGrid>.
<p:panelGrid styleClass="companyHeaderGrid">
<p:row>
<p:column>
Some tags
</p:column>
<p:column>
Some tags
</p:column>
</p:row>
</p:panelGrid>
Run Code Online (Sandbox Code Playgroud)
我已经能够从单元格中删除边框:
.companyHeaderGrid td {
border: none;
}
Run Code Online (Sandbox Code Playgroud)
但
.companyHeaderGrid {
border: none;
}
Run Code Online (Sandbox Code Playgroud)
不行.
我已经完成了关于Facelets模板的教程.
现在我尝试创建一个与模板不在同一目录中的页面.我有页面样式的问题,因为样式用相对路径引用,如下所示:
<link rel="stylesheet" href="style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
我可以通过以下开头使用绝对引用/:
<link rel="stylesheet" href="/project_root_path/style_resource_path.css" />
Run Code Online (Sandbox Code Playgroud)
但是,当我将应用程序移动到不同的环境时,这将给我带来麻烦.
所以我想知道在Facelets中引用CSS(以及JS和图像)资源的最佳方法是什么?
简单地说,我试图通过FireBug在生成的HTML中查看组件的名称,之后我在JSF项目中手动定义的css中更改它,但无法覆盖PrimeFaces的CSS定义.提前感谢任何想法.
我有一个JSF2/Richfaces 4项目,其中我想使用其中一个默认皮肤,但我也想使用我自己的自定义样式表设置一些东西的样式.这听起来很简单,但我发现至少在某些情况下,我自己的风格没有被使用.为了明确,这是我的相关web.xml context-params:
<context-param>
<param-name>org.richfaces.skin</param-name>
<param-value>blueSky</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.control_skinning</param-name>
<param-value>enable</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.control_skinning_classes</param-name>
<param-value>enable</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
我的CSS文件包含:
<h:outputStylesheet name="jsp-css.css" library="css" />
Run Code Online (Sandbox Code Playgroud)
一个这样的实际样式定义:
.obsOptBtnSel{
background-color: transparent;
background-image: url('/images/circleY.gif');
background-repeat: no-repeat;
background-position: center;
border: none;
text-align: center;
width: 2em;
height: 2em;
}
Run Code Online (Sandbox Code Playgroud)
而实际按钮使用的风格:
<h:commandButton
value="?"
styleClass="#{obs.observation.observationExtent == -1.0 ? 'obsOptBtnSel' : 'obsOptBtnUns'}"
id="unknownButton"
/>
Run Code Online (Sandbox Code Playgroud)
所以,人们会认为我会从相关的blueSky皮肤继承样式,然后因为我指定了样式类,所以自定义样式表中提到的任何属性都将被覆盖.
但相反,当我查看Firebug中的元素时,我看到我的styleClass被皮肤指定的覆盖,例如它继续使用blueSky背景图像而不是我的.
我知道我可以通过简单地在样式表中将所有样式放入!important来解决这个问题,但这似乎是一个非常糟糕和不必要的方法来处理这个问题.
我在这做错了什么?还有其他解决方案吗?
我应该如何更改默认的primefaces样式并将其应用于全局且只应用一次?
.ui-widget,.ui-widget .ui-widget {
font-size: 90% !important;
}
Run Code Online (Sandbox Code Playgroud)
目前,我将这个CSS片段嵌入到每个XHTML页面的头部.
<head>
<style type="text/css">
.ui-widget,.ui-widget .ui-widget {
font-size: 90% !important;
}
</style>
</head>
Run Code Online (Sandbox Code Playgroud) 我的应用程序中有一个数据表.一列有大量数据,增加了表格的宽度.
我想将数据拆分为该列中的两行或更多行.
我试过设置该列的宽度,但数据没有拆分,也没有显示总数据.
<p:column headerText="#{msgs['exception.label.exceptionMsg']}" width="200">
<h:outputText value="#{exception.exceptionMsg}"/>
</p:column>
Run Code Online (Sandbox Code Playgroud)
我该如何拆分数据?
我正在使用primefaces的手风琴面板.在选项卡内部,我有以编程方式创建的表单.每个表单都有一个提交按钮.现在我想更改选项卡的颜色,如果已提交此选项卡的表单.那么有可能改变一个特定标签的颜色,我怎么能设法使这个工作?
我想我必须使用这里提到的不同的样式类,但我不太确定如何使用它们.
任何帮助表示赞赏
这与PrimeFaces有关,但我认为这个问题同样适用于标准的JSF数据表.
我有一个数据表列,其中的条目是自动换行的,因为内容可能很长.为了使显示更具可读性,我希望内容不被包装,而是提供水平滚动以查看默认情况下不显示的内容.
我确信这是一个简单的CSS修改,但我的熟练程度非常低.
<p:dataTable ... >
<p:column headerText="Book Title">
<h:outputText value="#{book.title}" style="???" />
Run Code Online (Sandbox Code Playgroud) 我在请求表单上有多个数据表.我想删除所有数据表的边框除了一个.我使用下面的样式删除边框.能告诉我如何才能获得一个带边框的数据表.截至目前,它删除了所有数据表的边框.
.ui-datatable .ui-datatable-data td, .ui-datatable .ui-datatable-data-empty td {
border-style: none;
}
Run Code Online (Sandbox Code Playgroud) 因此,经过几天的调试,我们最终能够重现复合组件之间的一些奇怪的交互ui:repeat,p:remoteCommand以及我们不理解的JSF中的部分状态保存.
复合组件使用迭代对象列表ui:repeat.在每次迭代期间,包含另一个复合组件并传递参数.
<ui:composition (...)>
<ui:repeat var="myVar" value="#{cc.attrs.controller.someList}">
<namespace:myRemoteCommand someParam="SomeParam"/>
Run Code Online (Sandbox Code Playgroud)
在包含的复合组件中,有一个自动运行p:remoteCommand调用方法,该方法使用组件接口中定义的参数.
<ui:component (...)>
<p:remoteCommand actionListener="#{someBean.someMethod(cc.attrs.someParam)}"
autoRun="true"
async="true"
global="false">
Run Code Online (Sandbox Code Playgroud)
但是,在设置断点时someMethod(...),会传递一个空字符串.仅当部分状态保存设置为false时才会发生这种情况.
我们尝试了几种解决方案,以下方案似乎有效(但我们不明白为什么,也无法预见可能发生的任何其他问题):
我们可以将部分状态保存设置为true.
我们可以将复合组件模式更改为ui:include.
我们可以删除一个或两个复合组件,而是直接包含内容.
题
为什么JSF会这样做?复合组件ui:repeat和参数传递之间的这种交互是什么,这取决于我们是否使用ui:include/部分状态保存?
我们使用的是Primefaces 5.3,Glassfish 4.1,Mojarra 2.2.12,Java 8.
jsf ×8
primefaces ×8
css ×7
jsf-2 ×5
datatable ×2
facelets ×2
alignment ×1
mojarra ×1
resources ×1
richfaces ×1
stylesheet ×1
templating ×1
uirepeat ×1