我正在使用Primefaces 5开发动态数据表.我已将表格宽度设置为auto.这真的很好.我的专栏仅使用所需的宽度,这是完美的.但我也使用paginator和Table标头.所以我的表看起来像这样:

<p:dataTable var="row"
editingRow="#{row.status == CommonConstant.ROWSTATUS_EDIT}"
tableStyle="width:auto"
value="#{componentBean.componentData[componentId].lazyModel}"
id="#{componentId}"
editable="true" scrollable="false" scrollHeight="100%"
resizableColumns="true"
paginator="true"
paginatorPosition="top"
rowsPerPageTemplate="10 25 50 100"
lazy="true">
<f:facet name="header">
<p:outputPanel style="text-align:right">
<h:commandLink rendered="#{fn:indexOf(componentBean.componentData[componentId].loadedData.actions, CommonConstant.ACTIONTYPE_EXCEL) >= 0}" >
<img border="0" src="img/excel.png" width="24"/>
<p:dataExporter type="xls" target="#{componentId}" fileName="#{appDialogId}" />
</h:commandLink>
<h:commandLink rendered="#{fn:indexOf(componentBean.componentData[componentId].loadedData.actions, CommonConstant.ACTIONTYPE_PDF) >= 0}">
<img border="0" src="img/pdf.png" width="24"/>
<p:dataExporter type="pdf" target="#{componentId}" fileName="#{appDialogId}"/>
</h:commandLink>
</p:outputPanel>
<p:outputPanel>
<h:outputText value="#{componentBean.componentData[componentId].loadedData.appdialogid}" />
</p:outputPanel>
</f:facet>
...
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
如何强制Header和paginator具有与表相同的宽度?
众所周知,建议使用注释javax.enterprise.context而不是javax.faces.bean它们被弃用.
我们都发现eager="true"带有@ApplicationScoped from javax.faces.bean和带有@PostConstruct方法的ManagedBeans 对于Web应用程序初始化非常有用,例如:从文件系统读取属性,初始化数据库连接等等...
示例:
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.annotation.PostConstruct;
@ApplicationScoped
@ManagedBean(eager=true)
public class someBean{
@PostConstruct
public void init(){
//Do all needed application initialization.
}
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如果我使用注释,我怎么能得到相同的行为javax.enterprise.context.
注意:
@Startup注释fromjavax.ejb将有助于运行该代码,但仅在应用程序服务器启动时部署webapp时.
我想知道是否可以使用jsoup取消注释html标签以进行实例更改:
<!--<p> foo bar </p>-->
Run Code Online (Sandbox Code Playgroud)
至
<p> foo bar </p>
Run Code Online (Sandbox Code Playgroud) 我正在构建一个客户端/服务器应用程序.我希望在身份验证框架上让用户更轻松.
我想知道如何让enter-key将登录名和密码提交给数据库(触发动作)?
如下图所示:
我希望这些组件正确地水平对齐.
我尝试了以下但无济于事:
...
<p:outputLabel value="Etat d'examen : " for="state"/>
<p:selectOneMenu id="state"
value="#{examenListBean.stateOption}"
style="width: 120px;" >
<p:ajax listener="#{examenListBean.fetch}" update="tabexam"/>
<f:selectItems value="#{examenListBean.etatExamOptions}"/>
</p:selectOneMenu>
...
Run Code Online (Sandbox Code Playgroud) 我正在使用jsoup 1.7.3来编辑一些html文件.
我需要的是从html文件中删除以下标记:
<meta name="GENERATOR" content="XXXXXXXXXXXXXX">
<meta name="CREATED" content="0;0">
<meta name="CHANGED" content="0;0">
Run Code Online (Sandbox Code Playgroud)
当你看到它的标签时,我怎么能这样做,这是我到目前为止所尝试的:
//im pretty sure that the <meta> tag is nested in the <header>
but removing the whole header is bad practice.
Document docsoup = Jsoup.parse(htmlin);
docsoup.head().remove();
Run Code Online (Sandbox Code Playgroud)
你有什么建议?
我正在使用primefaces 4.0,JSF Mojarra 2.2.2,这是我的数据代码:
<p:dataTable id="tabexam"
paginatorPosition="bottom"
var="exam"
value="#{dyna.examViewDataModel}"
widgetVar="examTable"
emptyMessage="aucun résultat trouvé pour votre recherche"
paginator="true"
rows="40"
selection="#{dyna.selectedExamen}"
filteredValue="#{dyna.filteredexams}"
selectionMode="single"
resizableColumns="true"
draggableColumns="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="40,80,120">
<p:columns value="#{datatableBean.table}"
var="column"
headerText="#{column.userListname}"
rendered="#{column.visible}"
resizable="#{column.resizable}"
width="#{column.width}"
columnIndexVar="colIndex">
<h:panelGroup>
<p:outputLabel value="#{column.dbname}" styleClass="fonty"/>
</h:panelGroup>
</p:columns>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的,但是我在控制台中得到空的字符串getHeaderText并且空宽度,我想知道我错过了什么
UIViewRoot view = FacesContext.getCurrentInstance().getViewRoot();
DataTable tabler = (DataTable) view.findComponent(":form1:tabexam");
List<UIColumn> coler = tabler.getColumns();
for (int i = 0; i < coler.size(); i++) {
System.out.println("/////////////////");
System.out.println(coler.get(i).getValueExpression("headerText").getValue(FacesContext.getCurrentInstance().getELContext()));
System.out.println(coler.get(i).getHeaderText());
System.out.println(coler.get(i).isRendered());
System.out.println(coler.get(i).isResizable());
System.out.println(coler.get(i).getWidth());
System.out.println("/////////////////");
}
System.out.println(coler.size());
Run Code Online (Sandbox Code Playgroud)
请注意,它 …
我需要p:selectCheckboxMenu在用户完成选择时(关闭时)触发操作.将datatable需要与新选定的列被更新(完成).
我找不到适合Menu的这个主要角色的ajax行为的事件名称.p:selectCheckboxMenu每次选择更新数据表的默认ajax行为对我和用户来说都是烦人的,我只需要p:selectCheckboxMenu触发动作时它已关闭.
这是我的代码:
<p:selectCheckboxMenu id="colser"
scrollHeight="100"
filterMatchMode="contains"
filter="true"
label="Colonnes"
value="#{datatableBean.selectedstateOptions}">
<f:selectItems value="#{datatableBean.columner}"
var="list"
itemLabel="#{list.listname}"
itemValue="#{list.headername}"/>
<p:ajax event="close_event_name_here"
update=":form1:tabexam"
listener="#{datatableBean.updateCols()}"/>
</p:selectCheckboxMenu>
Run Code Online (Sandbox Code Playgroud) 给定一个字节组和一个新的字节组,其中我需要覆盖其上的原始内容bytearray,但开始从特定位置/偏移(A)如下面的图像中(我们可以说B是长度新数组).如果覆盖超过原始数组的实际长度,也处理新长度.
(这是.WAV文件覆盖在不同位置所需的).

这是我到目前为止尝试但没有运气.
public byte[] ByteArrayAppender(byte[] firstData, byte[] newData, byte[] remainData, int Position) {
byte[] editedByteArray = new byte[firstData.length + newData.length + remainData.length];
System.arraycopy(firstData, 0, editedByteArray, 0, Position);
System.arraycopy(newData, 0, editedByteArray, firstData.length, newData.length);
System.arraycopy(remainData, 0, editedByteArray, newData.length, remainData.length);
return editedByteArray;
}
Run Code Online (Sandbox Code Playgroud) 我想写一个验证器,primefaces selectCheckboxMenu以防止用户选择少于5个值.
我试图实现BalusC RequiredCheckboxValidator,但无法知道如何访问所选值的大小,有人能把我放在正确的路径上吗?