0

私は、PDF形式のドキュメントを管理するための単純なSpring Webアプリケーションを開発しています。これは、通常の操作を実行できるはずです:それらをリストし、新しいものを追加し、削除し、更新します。これらの操作は、MS SQL Server データベースに移動します (ドキュメント テーブルには、ドキュメントのバイトを格納するための VARBINARY(MAX) フィールドがあります)。(以前に追加された)ファイルを更新するときに問題が発生します。ファイルの追加は簡単です。JSP の簡略化されたフォームは次のようになります。

<form:form method="post" action="AddDoc" commandName="document" enctype="multipart/form-data">
            <table id="documentTable">
                <tr>
                    <td>
                        <p>Choose file:</p>
                    </td>
                    <td>
                        <p><input type="file" name="file" path="file" size="40" value="${document.file}"></p>
                        <p><sf:errors path="file" class="error"/></p>
                    </td>
                </tr>
<tr>
                    <td colspan="2">
                        <p class="submit"><input id="submitForm" type="submit" name="commit" value="Go"></p>
                    </td>
                </tr>
</table>
        </form:form>

ご覧のとおり、フォームは送信時に Document オブジェクトを送信します。これはコントローラーによって検証され、データベースに挿入されます。この Document オブジェクトは、ドキュメントのバイトを挿入前に MultipartFile に格納します。ここで、この Document オブジェクトを更新したいので、JSP ページは追加の場合と同じですが、ページを表示する前に既存の Document を DB からロードする必要があるという違いがあります。フォームには、入力ファイル フィールドを除いて、ドキュメント情報が入力されるようになりました。value="${document.file}")。問題は、ユーザーがファイル自体を更新する必要はなく、フォームに表示されるその他の関連する属性のみを更新する必要がある場合があることです。ただし、ファイルが送信されると、空で検証を引き起こすファイルを除いて、すべてのフィールドが Document オブジェクト内に適切にカプセル化されます。失敗する。更新ドキュメント JSP ページがロードされたときにファイル入力フィールドに入力できるようにしたいので、ユーザーがこのフィールドを変更せずにフォームを送信すると、情報が再度送信されます。

空のファイル フィールドを受け入れるようにバリデータを変更し、DB またはセッションから情報を再度取得するなど、他の解決策について考えましたが、これは見栄えがよくありません。

どのようなアプローチが良いと思いますか?

4

0 に答える 0