在使用 PrimeFaces 3.3 的项目中,文件上传运行正常。我删除了 Primefaces 3.3 并添加了 3.5。从那时起,我就无法进行文件上传了。之前我添加了 commons-io 和 commons.fileupload,我不确定是否还需要它们,所以我也保留了这些 jar 文件。
错误
java.lang.NullPointerException
at org.primefaces.component.fileupload.FileUploadRenderer.decodeSimple(FileUploadRenderer.java:56)
at org.primefaces.component.fileupload.FileUploadRenderer.decode(FileUploadRenderer.java:47)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:836)
at javax.faces.component.UIInput.decode(UIInput.java:771)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1228)
at javax.faces.component.UIInput.processDecodes(UIInput.java:676)
at javax.faces.component.UIForm.processDecodes(UIForm.java:225)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1223)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:929)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at …Run Code Online (Sandbox Code Playgroud) Primefaces dataTable 有一个称为 ExpandedRow 的功能,当设置为 true 时,会展开所有行。但我只想在 dataTable 加载之前展开特定行。
<p:dataTable id="table" value="#{dataTable.cars}" var="car" expandedRow="true"
paginator="true" rows="5">
<p:column style="width:2%">
<p:rowToggler />
</p:column>
<p:column id="model" headerText="Model">
<h:outputText value="#{car.model}" />
</p:column>
<p:column id="year" headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:rowExpansion >
<h:outputText value="Manufacturer : " />
<h:outputText value="#{car.manufacturer}" />
</p:rowExpansion>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud) 我正面临列问题的重复 ID,p:treeTable即与以下链接中描述的问题相同的问题
http://forum.primefaces.org/viewtopic.php?f=3&t=31158&p=99463#p99463
所以我想按照上述解决方案中的建议实施解决方案。所以我想改变源代码并重新编译和使用jar,但我没有得到这样做的许可。我被要求通过扩展org.primefaces.component.api.UITree类或以某种方式自定义类而不更改 primefaces jar 中的实际类。
所以现在假设我已经创建了一个同名的类 UITree 并为我做了必要的更改。无论如何注册这个类,以便可以使用我的类而不是primefaces类
我有 ap:inputText 其值在 PrimeFaces 的自动生成组件中,我必须设置 required="true",当 Disabled 为 true 时验证不起作用。这是我的代码:
<p:inputText id="depCode" disabled="true" required="true"
value="#{bean.depCode}"
style="width:100%"
requiredMessage="Please set a reference generator"
/>
Run Code Online (Sandbox Code Playgroud)
任何建议请
我已经在我的网页上实现了一个弹出框
<p:dialog header="Value" widgetVar="confirmationCbxTxt" ..>
Run Code Online (Sandbox Code Playgroud)
现在,我想检查单击页面上的按钮时是否打开了此弹出框。我的按钮的代码是
<p:commandButton value="#{label.close}" ajax="true" id="Close2" onclick="focuspopup();" />
Run Code Online (Sandbox Code Playgroud)
使用 onclick 函数 "onclick="focuspopup();" 我想检查我的弹出框是否在屏幕上打开。有人可以建议这种方法。我正在考虑在我的 focuspopup() 中使用 jquery 来测试打开弹出。
我需要p:menubar躲起来mouseout。我怎样才能得到这个?尝试过覆盖PrimeFaces.widget.Menubar.prototype方法,但总是有东西被破坏。
下面的 EL 值表达式是否有效?
<p:selectBooleanCheckbox value="#{!bean.isCreateGroup}" id="checkBoxCreateSecurityGrpKey">
Run Code Online (Sandbox Code Playgroud)
我收到的错误是
javax.el.PropertyNotWritableException:/pages/popup.xhtml @503,170 value="#{!bean.isCreateGroup}": Illegal Syntax for Set Operation
Run Code Online (Sandbox Code Playgroud) 我可以在那里发生哪些可能的事件?谢谢你 :)
<p:inputText>
<p:ajax event="" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
尝试查看<p:ajax> 事件列表,但文档没有列出每个组件的可能事件:p
我正在尝试编写 Selenium 测试,但问题是我了解到该页面是使用 PrimeFaces 生成的,因此元素 ID 会不时随机更改。不使用 ID 不是很可靠。有什么我可以做的吗?
我有一个页面有不同的计算,这是由 ajax 完成的。
在页面的末尾应该有一个提示文本,每次计算后都会更新。
为此,我使用了autoUpdatePrimefaces的功能。
当我最初加载页面时,文本显示正确。同样在第一次计算后,文本会正确刷新。但是如果我做进一步的计算,无论balanceController.getBalance()返回哪个值,文本都不会再改变。
当我调试我的代码时,我看到它balanceController.getDetails()运行正确并且还返回了所需的文本。只有我页面上的内容没有刷新。当我手动重新加载页面(使用浏览器)时,会出现正确的文本。
<p:autoUpdate/>仅在第一次计算期间执行并更新选项卡内容的原因可能是什么?
余额页面.xhtml
<p:tab title="Further details" rendered="#{balanceController.showDetails()}">
<p:autoUpdate/>
<h:outputText value="#{balanceController.details}"/>
</p:tab>
Run Code Online (Sandbox Code Playgroud)
平衡控制器.java
public String getDetails() {
if ( getBalance() >= 0 ) {
return "Your current balance is: " + Double.toString(getBalance());
} else {
return "Your credit has been used up!";
}
}
Run Code Online (Sandbox Code Playgroud) primefaces ×10
jsf ×6
javascript ×2
jquery ×2
ajax ×1
el ×1
file-io ×1
file-upload ×1
html ×1
jsf-2 ×1
jsf-2.2 ×1
python ×1
selenium ×1