2012-04-20 92 views
0

我有上传一个Excel文件的页面。如果有错误,我使用显示标签以表格格式显示这些错误。显示标签如何工作?

一切正常,直到显示。但是,如果我必须对数据进行排序或导出,那么它会再次停止工作,并且它会重定向到同一页面,而没有任何数据。

我猜对于每一个操作(如排序和导出),它都会触及数据库,因此在下一个请求中它不会显示任何数据,因为它没有获取文件名。

任何人都可以解释我是对还是错?我是这个显示标签的新手。

这里是我的JSP代码的src:

</head> 
<body> 
    <form:form id="formAdd" method="post" action="locationSave.do" 
     commandName="location"> 
     <form:hidden path="id" /> 
     <form:hidden path="isDeleted" /> 
     <form:hidden path="remarks" /> 
     <form:hidden path="status" /> 
     <form:hidden path="updatedDt" /> 
     <input type="hidden" value="${locationCodes}" id="codes"> 

     <table style="width: 1000px; border:0; cellspacing:1; cellpadding=0; class=table_border; align :center;"> 
     <tr> 
      <td colspan="6" class ="H1"> 
       Location Master 
      </td> 
     </tr> 
     <tr> 
      <td colspan="6" class="H2"> 
       Add Location 
      </td> 
     </tr>  
     <tr> 
       <td style="width: 16%;" class ="tdheader_left"><form:label path="code"> 
         <spring:message code="label.loccode" /> 
        </form:label></td> 
       <td style="width: 16%;" class="tdheader_textbox"><form:input 
         path="code" accesskey="o" cssClass="input" size="7" maxlength="5" 
         id="code" /></td> 

       <td style="width: 16%;" class ="tdheader_left"><form:label path="name"> 
         <spring:message code="label.locname" /> 
        </form:label></td> 
       <td style="width: 16%;" class="tdheader_textbox"><form:input 
         path="name" accesskey="n" class="input" maxlength="20" size="25" 
         id="name" /></td> 

       <td style="width: 16%;" class ="tdheader_left"><form:label path="locGrp"> 
         <spring:message code="label.locGrp" /> 
        </form:label></td> 
       <td style="width: 16%;" class="tdheader_dropdown"><form:select accesskey="g" 
         path="locGrp.id" class="input" id="grpId"> 
         <form:option value="-1" label="--- Select ---" /> 
         <form:options items="${locGrp}" /> 
        </form:select></td> 
      </tr> 
      <tr> 
       <td colspan="6" align="center" class="H1"> 
       <input id="save" accesskey="s" type="submit" value="Save"/> 
       <input id="reset" accesskey="r" type="reset" value="Reset" /> 
       <input type="button" accesskey="c" value="Cancel" onclick="window.location = 'location.do';" /> 
       <input type="button" id="upload_file" 
        accesskey="a" value="Upload File" 
        /></td> 
      </tr> 
     </table> 
    </form:form> 



    <div id="formUpload" style="text-align:center;display:block;"> 
    <form:form id="formFile" method="post" action="locationFileUpload.do" commandName="file" enctype="multipart/form-data"> 
     Please select a file to upload : <input type="file" name="file" /> 
     <input type="submit" value="upload" id="success" /> 
     <c:if test="${locErrorList != null}"> 
    <div id="uploaderror"> 
    Following locations could not be uploaded 
     <display:table uid="2" name="locErrorList" class="displaytag" id="locError" pagesize="10" excludedParams="*" requestURIcontext="true" 
      defaultorder="ascending" requestURI="locationFileUpload.do" export="true" > 
      <display:column property="code" sortable="true" title="Location Code" headerClass="sortable" /> 
      <display:column property="name" sortable="true" title="Location Name" headerClass="sortable" /> 
      <display:column property="error" sortable="true" title="Reason For Failure" headerClass="sortable" />   
    </display:table> 
    </div> 
    </c:if> 
     </form:form> 

     </div> 

</body> 
</html> 

回答

0

由displaytag产生的排序和分页链接具有相同的请求参数在显示表中的请求而发送的人。所以,如果你发布形式与请求参数foo=1bar=2,并显示一个表作为这一请求提交的结果,生成的链接将具有href看起来像这样:

<a href="theRequestURI?foo=1&bar=2&d-..."> 

所以,当你点击在链接上,您将向您的服务器发送一个新请求,并且此请求应使用发送的参数来取回要显示的数据列表并使它们可供JSP访问。 JSP中的显示标签将重新生成表格,并使用displaytag特定参数(以d-开头的参数)对数据进行排序并仅显示适当的页面。