JSP表排序不起作用

时间:2015-10-07 04:54:10

标签: jsp sorting displaytag

我在jsp中使用标签的表有以下代码,看起来非常简单。然而,由于一些奇怪的原因,我使用的那种根本不起作用,并且对我造成各种头痛。

jsp表代码:

<display:table name="searchResult.FormList" class="display" id="forms" keepStatus="true"
export="true" pagesize="500" sort="list" defaultSort="2" defaultOrder="ascending"
requestURI="searchResult.htm?paging=true">

<display:column title="Select"><input type="checkbox" name="selForm" value="${forms.objectId}"/>"/></display:column>

<display:column title="Form Name" sortable="true" headerClass="sortable"><a href="javascript:onclick=
downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}'/></a>
<c:out value="${forms.objectName}"/></display:column>

现在,给定表和列,我希望表结果按第二列排序 - 它从结果对象表单中显示objectName。然而,这种情况并非如此。不知何故,排序根本不起作用。默认排序是随意的(A,D,E,B,C而不是A,B,C,D,E),当我们尝试从列中手动排序时,排序不再正确。 forms.objectName始终具有字母表。

我尝试了几件事。其中一个是(对于第二列,其他一切都相同):

<display:column property="objectName" title="Form Name" sortable="true" headerClass="sortable"/>

当我这样做时,表格填充,并且毫不奇怪,表格被第二列完美排序(A,B,C,D,E符合预期)。但是,问题是这些没有超链接,因此我不能使用它。

我试过的另一件事是第二栏:

<display:column property="objectName" title="Form Name" sortable="true" headerClass="sortable" href="javascript:onclick=
downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}')"/>

同样,这将通过第二列(A,B,C,D,E)完美地对表进行排序。但是,downloadForm方法的参数来自表的最后一行,即例如,如果搜索表中有10行,则第二列链接将获得forms.objectId&amp;所有10行的最后一行中的forms.objectName。因此,我也不能使用它。

我希望你的问题很明确。任何帮助都非常感谢。如果您需要进一步说明,请与我们联系。感谢。

2 个答案:

答案 0 :(得分:0)

可以尝试:

<display:column title="Form Name" sortable="true" headerClass="sortable" sortName="objectName">
   <a href="javascript:onclick=downloadForm('${session.userId}','${forms.objectId}','${forms.objectName}'/></a>
   <c:out value="${forms.objectName}"/>
<display:column>

与您粘贴的第一个代码完全相同,但将属性sortName="objectName"添加到display:column

答案 1 :(得分:0)

首先,你需要指定sortProperty,因为displayTag不能神奇地计算你想要对'name'属性进行排序。

从标记库参考文档:

  

sortProperty :父表标记中指定的bean中的属性名称(通过“name”属性)将用于排序   列中的值。 填充柱体时可以使用此选项   或使用装饰器,列应按未修饰的值排序

<display:column title="Form Name" sortable="true" headerClass="sortable" sortProperty="name" />