- PR -

sessionオブジェクトの変換

1
投稿者投稿内容
ごろ猫
会議室デビュー日: 2002/07/21
投稿数: 2
投稿日時: 2002-07-21 19:57
こんにちわ。
JSPで行き詰まっていることがありまして、アドバイスいただけると助かります。

session.getAttribute("xyz")で abc という値が返ってくるとします。
ここで、abc のアタマ2バイトをif文での比較対象としたいのです。

substringを使おうと思いString変数へ代入しようとしたら、「明示的なキャストが必要」というエラーメッセージが出たのですが、どうしたらよいかわかりません。

明示的なキャストの方法、もしくは上記の要望を満たしてくれる別の方法がありますでしょうか?

よろしくお願いします。
_________________
asip
ベテラン
会議室デビュー日: 2001/12/27
投稿数: 77
投稿日時: 2002-07-21 20:59
Servlet あるいは JavaServer Pages のAPIドキュメントを探し、
目を通したのですか?

HttpSessionクラスのgetAttributeメソッドはObjectクラスのインスタンスを
返します。ObjectクラスはJavaにおいて全てのクラスの親クラスです。

Objectクラスを他のクラスの変数に直接代入することはできません。
明示的にキャストする必要があります。

引用:

JSPで行き詰まっていることがありまして、アドバイスいただけると助かります。



JSP云々の話ではなく、Javaの文法の勉強をしていないだけ。

Javaの文法について書いた書籍等に目を通しましたか?

"キャスト"が何かも知らないのに応用を勉強するとは...。

ServletやJSPを勉強する前にJavaの文法を勉強しましょう。
基本がわかっていないのに、応用をいくら勉強しても無駄です。

コード:

String abc = (String)session.getAttribute("xyz");


これが答えです。答えを見てわかったつもりになるだけでは同じことの繰り返し。

[ メッセージ編集済み 編集者: asip 編集日時 2002-07-21 21:08 ]
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-07-21 23:01
[ 前提事項 ]
まずは「キャスト」という基本的な文法規則をきちんと勉強しておきましょう。
Java言語でクラスをプログラミングするため基本文法を身に付けていないJSP入門者は結構多いと聞いています。

[ 回答 ]
JSP標準タグライブラリ(JSTL)が動作可能な環境(JSP 1.2対応のコンテナ)であれば、
次のように書くこともできます。

<c:if test="${xyz == 'abc'}">
  <条件タグのリテラル式が真だった場合の処理>
</c:if>

[ 注意 ]
ただし、回答内容をただ丸覚えしただけでは、何も意味がありません。
仕様書などを熟読し、どうしてそうなるのかをしっかり理解してください。
ごろ猫
会議室デビュー日: 2002/07/21
投稿数: 2
投稿日時: 2002-07-22 00:55
Javaの基本ができていないということなので、もっと勉強し理解を深めようと思います。

返信ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)