问题描述
我有这样的代码片段,我想更改排序方式(现在是 sortByTime)但例如我想更改为 sortByTitle 或 sortById 我该怎么做?
使用我对实体进行排序的方法的现有类(为简洁起见省略了一些方法)
public final class ListEntitySort {
private static Comparator<Entity> compareByStartTime = Comparator.comparing(Entity::time);
public static List<Event> sortByTime(List<Event> events) {
events.sort(compareByStartTime);
return events;
}
... more
}
对于这种情况,我使用 function.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>Entity_Functions</short-name>
<uri>ua.com.example</uri>
<function>
<name>sortByTime</name>
<function-class>ua.com.example.web.command.functions.ListEntitySort</function-class>
<function-signature>java.util.List sortByTime(java.util.List)</function-signature>
</function>
<function>
<name>formatLocalDateTime</name>
<function-class>ua.com.example.web.command.functions.Dates</function-class>
<function-signature>java.lang.String formatLocalDateTime(java.time.LocalDateTime,java.lang.String)
</function-signature>
</function>
</taglib>
List<Entity> entities = someService.getListEntities();
request.setAttribute("entities",entities);
<c:forEach var="entity" items="${p:sortByTime(entities)}">
<tr>
<td>${entity.id}</td>
<td>${entity.title}</td>
<td>${entity.description}</td>
<td>${entity.location}</td>
<td>${p:formatLocalDateTime(entity.time,'dd-MM-yyyy HH:mm')}</td>
<td>
</tr>
可能会创建一个标志,将排序方法发送到 servlet 并为每个更改排序方法参数。 或者在 jsp 中添加脚本 或者在jsp中通过jstl
用if标签做一些事情
<c:if test="${check the way of sorting }">
put here for each
</c:if>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)