- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试修复此数据表(Primefaces 组件)的 sortBy 函数,但我只是不明白为什么它不起作用,而其他功能(如分页或过滤器)可以正常工作。对于这个数据表,我只需要为它的名为“value”的标签属性传递一个数组,并为名为“var”的标签属性传递一个与数组类型相同的单个对象。下面我将发布我的代码。
这是带有数据表的 JSF 页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:p="http://primefaces.prime.com.tr/ui">
<ui:composition template="WEB-INF/templates/BasicTemplate.xhtml">
<ui:define name="resultsForm">
<h:form enctype="multipart/form-data">
<h:inputText id="search" value="" /><h:commandButton value="search"/>
<p:dataTable var="garbage" value="#{resultsController.allGarbage}" dynamic="true" paginator="true" paginatorPosition="bottom" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column filterBy="#{garbage.filename}" filterMatchMode="startsWith" sortBy="#{garbage.filename}" parser="string">
<f:facet name="header">
<h:outputText value="Filename" />
</f:facet>
<h:outputText value="#{garbage.filename}" />
</p:column>
<p:column filterBy="#{garbage.description}" filterMatchMode="contains">
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{garbage.description}" />
</p:column>
<p:column sortBy="#{garbage.uploadDate}" parser="string">
<f:facet name="header">
<h:outputText value="Upload date" />
</f:facet>
<h:outputText value="#{garbage.uploadDate}" />
</p:column>
</p:dataTable>
</h:form>
</ui:define>
这里是与该页面交互的托管 bean:
@ManagedBean
@RequestScoped
public class ResultsController {
@EJB
private ISearchEJB searchEJB;
private Garbage garbage;
public List<Garbage> getAllGarbage() {
return searchEJB.findAllGarbage();
}
public Garbage getGarbage() {
return garbage;
}
public void setGarbage(Garbage garbage) {
this.garbage = garbage;
}
访问数据库的EJB:
@Stateless(name = "ejbs/SearchEJB")
public class SearchEJB implements ISearchEJB {
@PersistenceContext
private EntityManager em;
public List<Garbage> findAllGarbage() {
Query query = em.createNamedQuery("findAllGarbage");
List<Garbage> gList = new ArrayList<Garbage>();
for (Object o : query.getResultList()) {
Object[] cols = (Object[]) o;
Garbage tmpG = new Garbage();
tmpG.setFilename(cols[0].toString());
tmpG.setDescription(cols[1].toString());
tmpG.setUploadDate(cols[2].toString());
gList.add(tmpG);
}
return gList;
}
正在使用 JPQL 命名查询的实体:
@NamedQuery(name = "findAllGarbage", query = "SELECT g.filename, g.description, g.uploadDate FROM Garbage g;")
@Entity
public class Garbage {
@Id
@GeneratedValue
@Column(nullable = false)
private Long id;
@Column(nullable = false)
private String filename;
@Column(nullable = false)
private String fileType;
@Column(nullable = false)
private String uploadDate;
@Column(nullable = false)
private String destroyDate;
@Lob
@Column(nullable = false)
private byte[] file;
@Column(nullable = false)
private String description;
带有浏览器输出的打印屏幕
页面刷新时的控制台输出(严重:第 1:61 行在字符“;”处没有可行的替代方案):
最佳答案
将 ResultsController 的范围更改为 @ViewScoped
。 ResultsController 和 Garbage 对象将需要实现 java.io.Serializable。
也许这会有所帮助。以下是我开始工作的代码:
index.xhmtl
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<f:view contentType="text/html" >
<h:head>
<title>PrimeFacesTest</title>
</h:head>
<h:body>
<h:form>
<p:dataTable var="garbage" value="#{indexBean.allGarbage}"
dynamic="true" paginator="true" paginatorPosition="bottom" rows="4"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column filterBy="#{garbage.filename}" filterMatchMode="startsWith" sortBy="#{garbage.filename}" >
<f:facet name="header">
<h:outputText value="Filename" />
</f:facet>
<h:outputText value="#{garbage.filename}" />
</p:column>
<p:column filterBy="#{garbage.description}" filterMatchMode="contains" >
<f:facet name="header">
<h:outputText value="Description" />
</f:facet>
<h:outputText value="#{garbage.description}" />
</p:column>
<p:column sortBy="#{garbage.uploadDate}" parser="string">
<f:facet name="header">
<h:outputText value="Upload date" />
</f:facet>
<h:outputText value="#{garbage.uploadDate}" />
</p:column>
</p:dataTable>
</h:form>
</h:body>
</f:view>
</html>
IndexBean.java
@ManagedBean
@ViewScoped
public class IndexBean implements Serializable {
private ArrayList allGarbage;
public IndexBean() {
allGarbage = new ArrayList();
allGarbage.add(new Garbage("Abc", "Abc", "28/03/2011 12:13:32"));
allGarbage.add(new Garbage("Bbc;", "bbc", "28/03/2011 12:14:32"));
allGarbage.add(new Garbage("Cbc", "Cbc", "28/03/2011 12:17:32"));
allGarbage.add(new Garbage("1Abc", "1Abc", "28/03/2011 12:13:32"));
allGarbage.add(new Garbage("2Bbc;", "2bbc", "28/03/2011 12:14:32"));
allGarbage.add(new Garbage("3Cbc", "3Cbc", "28/03/2011 12:17:32"));
allGarbage.add(new Garbage("4Abc", "4Abc", "28/03/2011 12:13:32"));
allGarbage.add(new Garbage("5Bbc;", "5bbc", "28/03/2011 12:14:32"));
allGarbage.add(new Garbage("6Cbc", "6Cbc", "28/03/2011 12:17:32"));
}
public ArrayList getAllGarbage() {
return allGarbage;
}
}
垃圾.java
public class Garbage implements Serializable {
private String filename;
private String description;
private String uploadDate;
public Garbage(String filename, String description, String uploadDate) {
this.filename = filename;
this.description = description;
this.uploadDate = uploadDate;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename = filename;
}
public String getUploadDate() {
return uploadDate;
}
public void setUploadDate(String uploadDate) {
this.uploadDate = uploadDate;
}
}
关于java - 为什么这个dataTable sortBy 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484404/
我有一个向量列表。但现在我想使用 sortBy 函数按长度对这个向量列表进行排序。我已经拥有的是: import Data.List vectorLength::(Int,Int)->Float ve
我想按名称列对集合进行排序。使用 sortBy() 方法不起作用。 $collection = \App\Http\Resources\MyResource::collection($test
我有这个代码 $list = Elements::where('list_id', $id)->with('visitors')->get()->sortBy(function
我想知道为什么 Scala Set 没有 sortBy 方法,而 Seq 或 List 因为它也扩展了 Iterable... 最佳答案 Set 是一种有点有序(这就是它可迭代的原因)但未排序的元素集
它基本上显示来自mysql数据库的数据并使用 $sortby = $_GET['sort']; 我得到的错误是 Notice: Undefined index: sort in /home/45074
我有一个带有这个 ng-repeat 的表 ticket in filteredTickets = (vm.tickets | filter : vm.search | orderBy : vm.pr
HTML: Date Progress adminUsername 指令: .directive('reportrowgroup', function () { r
我正在尝试对对象进行排序,但似乎无法在排序后保留每个对象的键名称。 这是我正在排序的示例 json series_data: { embeded: { objectNameA: {
这是一个源自another question的问题.我需要能够动态传递要在具有左连接的 Slick 查询中进行排序的列。这种特殊情况下的问题是左连接表变得可选,我不知道如何处理。如果我使表 Compa
假设函数的输入是: [(6,-275),(3,123),(7,1000),(9,-572),(3,333),(1,-23)] 输出应该是: [(9,-572),(6,-275),(1,-23),(3,
好的,我有一个 Controller ,其模型设置如下: App.MyModel = DS.Model.extend({ myOtherProperty: attr(), mySort
我对 F# 还很陌生,使用了 Seq.sortBy 函数,但是它按升序对我的列表进行排序。如何使用 Seq.sort 按降序对其进行排序? 例如,示例代码将是... let DisplayList =
我使用 underscore 的 sortBy() 对字符串的 array 进行排序。但我想比其他字符串更早地对几个(硬编码的)字符串进行排序 - 我将向用户显示输出,并且将相关字符串放在前面会更自然
Haskell 的 sortBy 相当于什么?在 Coq 中? 总的来说,我发现 Coq 标准库的排序令人困惑。 我希望对排序列表进行一些“公理化”,以及不同排序的可用性,我可以为其提供排序功能。 然
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
我正在使用 Primefaces + JSF 开发一个应用程序。我的数据表可以工作,但在排序 sortBy= 时出现问题,我尝试了 sortBy="#{pc.rota}" 但它也不起作用: 数据表显示
我想将 List.sortBy 接受的参数传递给另一个函数。我的代码看起来像这样: //Scala def sortAndMore(list: List[(String, _)], sortFn: O
我正在尝试根据每个元组中的第 4 个元素对我的元组列表进行排序。第四个元素包含一个人名字符串。我想将包含相同名称的元组放在一起。排序前的元组列表示例如下: [("A",100,"Q",3,"Todd"
我有一个带有子集合的集合,例如: + +--- name: 1a8 Lorem Ipsum + +--- name: 1a2 Lorem Ipsum + +--- name: 1a10 Lorem I
也许我需要将数组转换为真实日期才能使其工作?如果使用 moment 性能会成为问题,因为我还需要对数组进行排序。 const arr = [{ "created_at": "2017-07-19
我是一名优秀的程序员,十分优秀!