- - PR -
【JSF】 javascript.escape()したリクエストパラメータを読み込みencodeしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-12 23:57
どなたかご教授ください。
ある画面遷移を行う際、 javascriptのescape()関数にてデコードした文字列を リクエストパラメータとして渡し、 遷移後の画面ロード時にJSFで読み込み、 エンコードした文字列を表示したいです。 お助けください。 | ||||
|
投稿日時: 2007-07-13 07:25
javascriptで分解したものはjavascriptで
| ||||
|
投稿日時: 2007-07-16 14:29
ええと、何が分からないのでしょうか?? | ||||
|
投稿日時: 2007-07-16 15:53
杏さん
ご指摘ありがとうございます。 まず、杏さんのご指摘はごもっともですので、取り急ぎjavascriptで対応してみました。 よしだひろゆきさん 今後、デコード/エンコード処理などを行う際の知識として知っておきたいので、教えてください。 1.JSFにて画面遷移する際、リクエストパラメータを渡したいのですが、 その際のパラメータをデコードする方法(デコードの種類も) 2.上記1にて渡されたパラメータを 「FacesContext.getExternalContext().getRequestParameterMap();」 などで受け取り、エンコードする方法。 ※jakarta.apache.org/commons/codec/ なども参考にしましたが、 それ以外の方法など教えてください。 よろしくお願いします。 | ||||
|
投稿日時: 2007-07-16 17:19
JavaScript は ブラウザ別に挙動が多少ちがいます。
JavaScript による encodingを実装しても 「ブラウザの種類xバージョン数x文字コード数」文のdecodeをしなければいけません。 JavaScriptの escape() / unescape() のソースと同様の記述のものを Javaで作成するしかありませんが。 セキュア上の観点からそのまま流すのはまずいならば HTTPS通信をしましょう。 Javaにいたっては自動decodeをされることをわすれなく。 | ||||
|
投稿日時: 2007-07-17 11:13
escape/unescpaseやブラウザの種類やバージョンによって仕様がまちまちなので、
encodeURIComponent/decodeURIComponent関数を使用してください。 java側はjava.netncoder#encode/java.net.URLDecoder#decodeが対応します。 (GET,POSTのパラメータは自動的にデコードされますが) javaとjsの間で半角スペースの扱いが異なるのでその辺は注意。
| ||||
|
投稿日時: 2007-07-19 11:05
杏さん、sawatさん
とても参考になりました。 ありがとうございました。 |
1