我找不到icons像PickList组件中存在的那样选择箭头的方法,以便在其他方面使用它们CommandButtons.
好吧,我知道为了在CommandButton中使用图标,必须遵循以下指示:
<p:commandButton outcome="target" icon="star" title="With Icon"/>
Run Code Online (Sandbox Code Playgroud)
已经在css文件中定义了星形图标:
.star {
background-image: url("images/star.png");
}
Run Code Online (Sandbox Code Playgroud)
但我更喜欢使用与PickList组件完全相同的箭头.
我试图在启用RowSelection的情况下实现一个DataTable Editable.
但它抛出了一个例外:
启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel.
我在对象类和托管bean类中实现了DataModel,但错误是相同的.现在只为我显示一个空白表.请帮忙.
我希望有一个看起来像按钮的组件,但它应该包含一个图像,而不是文本.由于标准按钮不提供此功能,我尝试使用<h:commandLink>:
<h:commandLink action="#{some_action}">
<p:panel styleClass="some_style">
<h:graphicImage value="#{some_image}">
</p:panel>
</h:commandLink>
Run Code Online (Sandbox Code Playgroud)
这不起作用.将<h:commandLink>被转换成一个<a>标签,和<p:panel>成<div>.<a>-tags可能不包含<div>-tags,因此<div>-tag会自动放在<a>-tag 之外.结果是只有图像是可点击的,而不是周围的面板,其样式看起来像一个按钮.有没有办法让周围的面板成为链接的一部分,或者将图像放在按钮内?
我的项目使用JSF和Primefaces库:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui">
Run Code Online (Sandbox Code Playgroud) 这是在GlassFish 3.1上,使用PrimeFaces而不是Mojarra,并使用MyFaces CODI进行腌制.几乎每个请求都会出现以下消息:
警告:PWC4011:无法从上下文/com.myapp_war_0.1将请求字符编码设置为UTF-8,因为已经读取了请求参数,或者已经调用了ServletRequest.getReader()
自从我开始这个项目以来,这已经发生了 - 到目前为止,我一直忽视它,但现在我已经意识到我浪费了很多时间阅读它.我在这里发现了一个有趣但不完整的工作,但我不明白.
有人可以建议如何在不抑制其他可能的警告消息的情况下压缩此消息吗?
我有类似的东西:
<p:inputText...>
<p:ajax event="keyup" update="somefield" listener="#{someBean.doSomething}"/>
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
但我不想在每个按键上都做一个Ajax请求,我想在用户停止写入后半秒钟做请求.
我在另一个问题中看到jQuery解决了这个问题: 如何延迟.keyup()处理程序,直到用户停止输入?
我想知道是否可以在primefaces上执行此操作或如何从jQuery问题调整解决方案.
我正在使用PrimeFaces 3.0.M4.
先感谢您.
在我的JSF数据表中,我实现了延迟加载,当我对记录进行分页时,执行下一组记录需要大约4或5秒的时间,实际上执行结果需要不到一秒的时间.
这已经发生在我实现它的方式,不知道我怎么能解决这个问题.
扩展LazyDataModel的DataModel类
@Override
public List<Request> load(int startingAt, int maxPerPage, String sortField,
SortOrder sortOrder, Map<String, String> filters)
{
requestList = requestService.getRequest(startingAt, maxPerPage,
sortField, sortOrder, filters);
this.setRowCount(requestList.size());
if (requestList.size() > maxPerPage)
{
System.out.println("executing");
return requestList.subList(startingAt, startingAt + maxPerPage);
}
else
{
System.out.println("executing else ");
return requestList;
}
return requestList;
}
Run Code Online (Sandbox Code Playgroud)
并在dao类
@Override
public List<Request> getRequest(int startingAt, int maxPerPage,
String sortField, SortOrder sortOrder, Map<String, String> filters)
{
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
Request.class);
criteria.addOrder(Order.desc("requestNo"));
for (Map.Entry<String, String> entry : filters.entrySet())
{
if (entry.getValue() …Run Code Online (Sandbox Code Playgroud) 在一个表单中,我有一些带有两个commandButton的inputText,一个用于accept,一个用于cancel.如何仅对取消按钮禁用验证?
<h:form id="detailsForm">
<p:inputText id="editUsername" value="#{userController.editUser.usrUsername}" />
<p:inputText id="editFirstName" value="#{userController.editUser.usrFirstName}" />
<p:inputText id="editLastName" value="#{userController.editUser.usrLastName}" />
<p:commandButton value="Accept" update=":detailsForm" actionListener="#{userController.onDetailsEditAccept}" />
<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
我已经尝试required="false"在字段上插入但它没有用.我也尝试<f:validateBean disabled="true" />在字段上插入但它没有用.
也许这是一个愚蠢的问题,但在Primefaces中,<p:dialog>有一个属性,appendTo在手册中描述为:
将对话框追加到给定搜索表达式定义的元素.
我无法意识到它有用吗?
我一直在Java EE应用程序中使用Joda Time进行日期时间操作,其中关联客户端提交的日期时间的字符串表示已使用以下转换例程转换,然后将其提交到数据库,即在getAsObject()方法中. JSF转换器.
org.joda.time.format.DateTimeFormatter formatter = org.joda.time.format.DateTimeFormat.forPattern("dd-MMM-yyyy hh:mm:ss a Z").withZone(DateTimeZone.UTC);
DateTime dateTime = formatter.parseDateTime("05-Jan-2016 03:04:44 PM +0530");
System.out.println(formatter.print(dateTime));
Run Code Online (Sandbox Code Playgroud)
当地时区比UTC/ 提前5小时30分钟GMT.因此,转换为UTC应从使用Joda Time正确发生的日期时间中扣除5小时30分钟.它按预期显示以下输出.
05-Jan-2016 09:34:44 AM +0000
Run Code Online (Sandbox Code Playgroud)
► 已+0530取代时区偏移量,+05:30因为它取决于<p:calendar>以此格式提交区域偏移量.似乎不可能改变这种行为<p:calendar>(否则本身就不需要这个问题).
但是,如果尝试在Java 8中使用Java Time API,那么同样的事情就会被破坏.
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss a Z").withZone(ZoneOffset.UTC);
ZonedDateTime dateTime = ZonedDateTime.parse("05-Jan-2016 03:04:44 PM +0530", formatter);
System.out.println(formatter.format(dateTime));
Run Code Online (Sandbox Code Playgroud)
它意外地显示以下错误输出.
05-Jan-2016 03:04:44 PM +0000
Run Code Online (Sandbox Code Playgroud)
显然,转换的日期时间不符合UTC它应该转换的日期时间.
它需要采用以下更改才能正常工作.
java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("dd-MMM-yyyy hh:mm:ss a z").withZone(ZoneOffset.UTC); …Run Code Online (Sandbox Code Playgroud) 我正在使用primefaces 3.2和JSF 2.0
我的方案是我的表单中有文件日期,上次日期和下一个日期.当用户输入文件日期时,我需要更新bean中的文件日期值,因此它的值可以用作属性mindate的最后日期的最小日期,因此在下一个日期选择中也是如此.
根据我的知识值,更改侦听器可以在表单提交时执行,因此我无法使用它.我用过p:ajax.但我仍然无法设置文件日期.由于未设置文件日期,因此用户可以选择文件日期日期之前的最后日期和下一个日期.
caseMaster.xhtml
<p:calendar value="#{caseUitility.caseMaster.fileDate}" id="fileDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true">
<p:ajax event="change" listener="#{caseUitility.dateChange}"/>
</p:calendar>
<p:calendar value="#{caseUitility.caseMaster.lastDate}" required="true" id="lastDate" effect="fadeIn" pattern="dd/MM/yyyy" readOnlyInputText="true" mindate="#{caseUitility.caseMaster.fileDate}" >
</p:calendar>
Run Code Online (Sandbox Code Playgroud)
CaseUitility.java
public void dateChange(ActionEvent ae) {
System.out.println("File Date: " + caseMaster.getFileDate());
System.out.println("Hello... I am in DateChange");
}
Run Code Online (Sandbox Code Playgroud)
谁可以指导我在这里做错了什么?
primefaces ×10
jsf-2 ×5
jsf ×4
ajax ×1
button ×1
calendar ×1
glassfish-3 ×1
hibernate ×1
java-time ×1
jpa ×1
jquery-ui ×1
lazy-loading ×1
mojarra ×1
pagination ×1
timezone ×1
validation ×1