我对 Play Framework(ver 1.x)中的分页模块有疑问,我已将分页设置为每页仅显示一个对象,以及控制器中的一些其他自定义设置:
import java.util.ArrayList;
import java.util.List;
import play.modules.paginate.ValuePaginator;
import play.mvc.Controller;
public class Application extends Controller {
public static void index() {
List<String> strings = new ArrayList<String>();
strings.add("Kalle");
strings.add("Karin");
strings.add("Dixie");
strings.add("Edvin");
strings.add("Gustav");
strings.add("Axel");
int pos = 0;
for(String str : strings){
if(str.equals("Axel")){
pos += strings.indexOf(str);
break;
}
}
ValuePaginator namePaginator = new ValuePaginator(strings);
namePaginator.setPageSize(1);
namePaginator.setBoundaryControlsEnabled(false);
namePaginator.setPagesDisplayed(0);
renderArgs.put("pos", pos);
renderArgs.put("namePaginator", namePaginator);
render();
}
在模板中:
#{extends 'main.html' /}
#{set title:'Home' /}
*{#{welcome /}}*
${pos}
#{paginate.controls items:namePaginator /}
#{paginate.list items:namePaginator, as:'name'}
${name}
#{/paginate.list}
*{#{list items:strings[pos], as:'string'}
${string}
#{/list}}*
现在,正如您在模板的最后一部分中看到的那样,有一个注释部分,使用通常的 groovy 列表标记,并且由于它有一个实际列表,我可以强制列表从给定位置“pos”开始,这然而,在使用分页的情况下是不可能的。在“items:namePaginator”的情况下,它只是底层列表的名称占位符,并不是真正可迭代的,是否有可能使分页从包装列表中的指定位置开始?
非常感谢 !