我正在使用p:dataTable(PrimeFaces)渲染一个表,我想要做的是根据内容的值为单元格的背景着色.这与着色行或列不同 - 它是单个单元格.
首先是一个CSS问题.如果我这样做:
<p:column headerText="xyzzy">
<div style="background-color: green">
<h:outputText value="#{rowVar.anumber}" >
<f:convertNumber groupingUsed="true" />
</h:outputText>
</div>
</p:column>
Run Code Online (Sandbox Code Playgroud)
仅设置内容的背景颜色,而不是整个单元格.换句话说,填充仍然是默认值.
其次,我想使样式字符串成为变量表达式.我可以向辅助bean添加一个函数,但是如何访问方法中的表内容?这会有用吗?
<div style="#{bean.computeCSS(rowVar.number}">
Run Code Online (Sandbox Code Playgroud)
编辑:
我找到了一种方法来完成条件部分,但我仍然需要CSS部分的帮助.我的解决方案如下:
<p:column headerText="xyzzy">
<div class="#{rowVar.anumber gt 0 ? 'colored' : ''}">
<h:outputText value="#{rowVar.anumber}">
<f:convertNumber groupingUsed="true" />
</h:outputText>
</div>
</p:column>
Run Code Online (Sandbox Code Playgroud)
虽然我不喜欢在EL中使用,但这样做的好处是不需要支持bean方法.
但是我仍然只获得背景颜色,而不是整个细胞.
我想要做的是创建具有交互式SVG内容的网页.我使用Batik作为Java桌面应用程序来渲染我的SVG并收集像mouseclick这样的UI事件.现在我想以相同的方式在我的JSF(Primefaces)Web应用程序中使用这些SVG图形文件.
试着开始,我发现这不起作用:
<h:graphicImage id ="gloob"value ="images/sprinkverks.svg"alt ="Graphic Goes Here"/>
我不介意做一些阅读以起到学习曲线.一些谷歌搜索没有发现任何有用的东西,这有点令人惊讶.
我所做的建议我必须使用f:verbatim标签执行此操作,就像我手动编写HTML一样.然后我必须添加一些脚本来捕获SVG事件并将它们反馈回AJAX代码.如果我必须尽我所能,但我希望有一种更容易和自动化的方式.
所以问题是:
非常感谢任何指针.
我有一个复合组件,其接口包含:
<cc:attribute name="model"
shortDescription="Bean that contains Location" >
<cc:attribute name="location" type="pkg.Location"
required="true" />
</cc:attribute>
</cc:interface>
Run Code Online (Sandbox Code Playgroud)
所以我可以使用#{cc.attrs.model.location}访问标记中的Location对象.
我也从复合组件的支持bean访问该对象,如下所示:
FacesContext fc = FacesContext.getCurrentInstance();
Object obj = fc.getApplication().evaluateExpressionGet(fc,
"#{cc.attrs.model.location}", Location.class);
Run Code Online (Sandbox Code Playgroud)
所以现在我的复合组件已经完成了它的工作 - 如何从支持bean调用模型上的setter方法?(即model.setLocation(someValue)?
我创建一个这样的复合组件:
<cc:interface>
<cc:attribute name="value"
required="true" />
<cc:attribute name="rendered"
displayName="True to render"
default="true" />
</cc:interface>
Run Code Online (Sandbox Code Playgroud)
当我调用这个组件时,我得到一个IllegalArgumentException.我可以将呈现的名称更改为其他名称(如doIt)然后它可以工作.
渲染的属性是以某种方式保留的吗?我希望我的复合组件看起来像"常规"JSF组件.
这是Mojarra.
这与PrimeFaces有关,但我认为这个问题同样适用于标准的JSF数据表.
我有一个数据表列,其中的条目是自动换行的,因为内容可能很长.为了使显示更具可读性,我希望内容不被包装,而是提供水平滚动以查看默认情况下不显示的内容.
我确信这是一个简单的CSS修改,但我的熟练程度非常低.
<p:dataTable ... >
<p:column headerText="Book Title">
<h:outputText value="#{book.title}" style="???" />
Run Code Online (Sandbox Code Playgroud) 我正在构建一个页面,其中包含多个标记实例,如下所示.
<ui:include id="foo" src="images/something.svg" />
Run Code Online (Sandbox Code Playgroud)
Faces Servlet将svg文件传递给浏览器,除了找到的EL表达式之外没有任何处理,这很好.问题是包含文件中的id标签是静态的,因此该文件的多个包含将生成非唯一ID标签.
我想要做的是像h:form那样,其中ui:include标签的ID被添加到包含文件中元素的ID之前.然后我可以毫不含糊地解决所有问题.
这样做是否有一种被接受的"最佳实践"方式?
更新:也许我应该通过跟进来增加这个问题,我首先需要这样做吗?我的目标是唯一地处理svg文档的每个包含副本中的标记,其中可以有任何数字.我有jQuery可用,因为无论如何它被Primefaces拉入.
所以,如果我有这样的JSF文件:
<ui:include id="foo" src="images/something.svg" />
<ui:include id="bar" src="images/something.svg" />
Run Code Online (Sandbox Code Playgroud)
在something.svg文件中我有一个标签
<rect id="blink" ... />
Run Code Online (Sandbox Code Playgroud)
在页面上的javascript中,我希望能够获得指向foo的指针:blink或bar:blink.我想我可以使用XPath表达式,但我知道那些有点慢.我无法想象那些发明了ui:include标签的人没有想过如何处理这个问题所以我假设我错过了一些明显的东西.
我在g元素中有一个或多个路径元素,我正在缩放以适应网格矩形.变换应用于g元素.我的变换的作用是所有的点最终都在正确的位置,但我发现我必须调整路径的笔触宽度以获得可读的线.
问题在于,如果比例涉及纵横比的大幅度变化,我最终会认为路径的某些部分比其他部分重,这取决于它们的方向.
这是我的代码计算的典型转换:
scale(0.1875, -0.010397820616798718) translate(-1149000, -96174)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我最终将笔划宽度从9px更改为大约48px.靠近水平端的区域较薄,靠近垂直区域的区域较厚.
是否有任何简单的方法可以结束具有相同渲染宽度的所有线段?
我试图以一种可以在外部表单中读取它们的方式序列化我的对象,并找到了 jsonpickle。但事实证明它将我的字典键从整数转换为字符串。
我注意到这个线程只使用 JSON 包来解决这个问题,但我希望 jsonpickle 能够解决这个问题。有任何已知的解决方法吗?或者是否有更好的文本模式序列化格式可用于 Python?
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
>>> a={}
>>> a[11]="eleventy"
>>> a[22]="twice that"
>>> a
{11: 'eleventy', 22: 'twice that'}
>>> import jsonpickle
>>> jstring=jsonpickle.encode(a)
>>> jstring
'{"22": "twice that", "11": "eleventy"}'
>>> b=jsonpickle.decode(jstring)
>>> b
{'22': 'twice that', '11': 'eleventy'}
>>>
Run Code Online (Sandbox Code Playgroud)
更新:短期内我的工作是拥有并行保存功能——一个用于 pickle,一个用于 jsonpickle。由于我的对象很复杂(循环引用),我无法摆脱无法处理的对象。我最初的要求是拥有一种可以在文本编辑器中读取的格式,这样我就可以检测逻辑问题,只要常规 pickel 是可靠的(它是),那么现在就可以了。有一天我可能想让其他一些非 Python 软件吃掉这个文件,所以我想找到一个可用的解决方案。XML 格式?Python 社区似乎对序列化为 XML 不太感兴趣。至少我还没有找到一个像 pickle/jsonpickle 一样容易工作的包。
我有一个 3 节点的 ubuntu microk8s 安装,它似乎工作正常。所有 3 个节点均为管理节点。
每当我使用kubectl命令时,仅在其中一个节点上,我会收到一条错误消息和相关的延迟。它看起来像这样:
$ time kubectl get pods
I0324 03:49:44.270996 514696 request.go:665] Waited for 1.156689289s due to client-side throttling, not priority and fairness, request: GET:https://127.0.0.1:16443/apis/authentication.k8s.io/v1?timeout=32s
NAME READY STATUS RESTARTS AGE
sbnweb-5f9d9b977f-lw7t9 1/1 Running 1 (10h ago) 3d3h
shell-6cfccdbd47-zd2tn 1/1 Running 0 6h39m
real 0m6.558s
user 0m0.414s
sys 0m0.170s
Run Code Online (Sandbox Code Playgroud)
错误消息每次总是显示不同的 URL。我尝试查找错误代码(I0324),但没有找到任何有用的信息。
其他两个节点不显示此行为。没有错误消息,并在不到一秒的时间内完成请求。
我是 k8s 新手,所以我不知道如何诊断此类问题。任何有关寻找内容的提示将不胜感激。
我正在维护我的第一个npm包,所以这可能是我的一个错误。构建我的包并将其提交到git后,下一步是:
\n$ npm version patch\n$ npm publish\nRun Code Online (Sandbox Code Playgroud)\n输出(节略)如下:
\n\nnpm notice \nnpm notice @mememe/p3-model@0.7.2\nnpm notice === Tarball Contents === \nnpm notice 188B README.md \nnpm notice 4.5kB dist/doc.d.ts\n\n (etc) \n \nnpm notice 792B package.json \nnpm notice === Tarball Details === \nnpm notice name: @mememe/p3-model \nnpm notice version: 0.7.2 \nnpm notice filename: @mememe/p3-model-0.7.2.tgz \nnpm notice package size: 6.2 kB \nnpm notice unpacked size: 23.2 kB \nnpm notice shasum: cb5588ee626efc21532845c608fdb05a5fcd4db3\nnpm notice integrity: sha512-s7IK2HSXCNTUk[...]ZHxDgAOIr4Cnw==\nnpm notice total files: 11 …Run Code Online (Sandbox Code Playgroud) jsf-2 ×6
jsf ×2
primefaces ×2
svg ×2
css ×1
facelets ×1
html ×1
kubernetes ×1
microk8s ×1
npm ×1
npm-publish ×1
python ×1