2012-04-20 10 views
0

1つの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の表示タグはテーブルを再生成し、表示タグ固有のパラメータ(d-で始まるパラメータ)を使用してデータをソートし、適切なページのみを表示します。

関連する問題