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>
4

1 に答える 1

0

displaytag によって生成された並べ替えとページ付けのリンクには、テーブルを表示するリクエストで送信されたものと同じリクエスト パラメータがあります。したがって、リクエスト パラメータfoo=1とを含むフォームをbar=2投稿し、このリクエスト送信の結果としてテーブルを表示すると、生成されたリンクには次のような href が含まれます。

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

したがって、リンクをクリックすると、サーバーに新しいリクエストが送信されます。このリクエストは、送信されたパラメータを使用して、表示するデータのリストを取得し、JSP からアクセスできるようにする必要があります。JSP の表示タグはテーブルを再生成し、表示タグ固有のパラメーター ( で始まるパラメーターd-) を使用してデータを並べ替え、適切なページのみを表示します。

于 2012-04-21T08:24:06.907 に答える