-1

Apache Commons File Upload APIを使用して Java EE でアプリケーションを作成しています。今のところ順調に進んでいますが、質問があります。

サーバー側で何らかの検証を行っています。問題がある場合は、ユーザーを前のページに送り、問題をユーザーに通知する必要があります。また、データをフォームにロードする必要がありますrequest.getParameter("key")が、JSPで使用するとnull.

リクエストが処理されていない状態でテストしたところcommons-fileupload、結果が表示されました。

私の質問はrequest.getParameter("key")、リクエストが によって処理された後、 を保持してクライアントに送り返す方法org.apache.commons.fileupload.servlet.ServletFileUploadです。

<%out.println(request.getParameter("cedula"));%>nullリクエストがAPIによって処理された後に戻る

4

2 に答える 2

0

それは正常です。HTTPリクエスト全体は、ApacheCommonsFileUploadのみが処理できる異なる形式で送信されます。はrequest.getParameter("name")、通常のパラメータではなく、どのパラメータでも機能しません。

通常の入力フィールドから値を抽出するには、まったく同じApache CommonsFileUploadAPIを使用する必要があります。通常はitem.isFormField()、コード例の行が戻ったときにこれを行う必要がありますtrue(アップロードされたファイルの抽出は、戻ったときにfalse実行されます。おそらく、その部分はすでに実装されています)。

または、サーブレット3.0(Tomcat 7、Glassfish 3など)を既に使用して@MultipartConfigいる場合は、サーブレットの注釈を使用することもできます。これにより、アップロードされたファイルを取得して、通常の入力フィールドrequest.getPart("name")で引き続き使用できます。request.getParameter("name")

参照:

于 2012-11-16T12:45:54.180 に答える
0

getParameter1)代わりに使用するのはなぜですかgetAttribute

2) 検証エラーが発生すると、リクエストがリダイレクトされます。これは、新しいリクエスト オブジェクトが送信されることを意味し、リクエスト属性を再度指定する必要があります。

アクションが JSP にディスパッチされるときと同じ方法です。パラメータを渡したい場合actionは、<form>タグの属性で指定する必要があります。

フレームワークに依存しているようですが、試すことができます。JSP でELを使用する場合は、スクリプトレットの代わりに${param}パラメーターにアクセスし、URL 経由で渡したい場合は属性にアクセスしようとすることができます。JSTL にも優れたアートがあります。${attr} getParameter

于 2012-11-17T12:47:45.010 に答える