- PR -

JSPでStringの値を+1したい

投稿者投稿内容
ぱあ
会議室デビュー日: 2005/05/27
投稿数: 18
投稿日時: 2005-06-30 15:14
基本的なことで申し訳ないのですがどうしても解決できないので教えて下さい。
JSPで
<bean:define id="cnt" value="0" />
と定義したcntをカウントアップしたいのですが、どうすればいいのでしょうか?
mone
常連さん
会議室デビュー日: 2005/05/18
投稿数: 37
投稿日時: 2005-06-30 15:29
こんにちは、moneです。

カウントアップしていくならいっそint型に直してしまったほうが・・

どうしてもやりたいなら
Integer#parseInt
String#valueOf
等を使って
intに変換→+1→Stringに変換して格納

という手順になります。

[ メッセージ編集済み 編集者: mone 編集日時 2005-06-30 15:30 ]
ぱあ
会議室デビュー日: 2005/05/27
投稿数: 18
投稿日時: 2005-06-30 16:17
引用:

Integer#parseInt
String#valueOf
等を使って
intに変換→+1→Stringに変換して格納

という手順になります。


色々試してみたのですがどうしてもできません。
自分なりに次のようなこともしてみたのですが、コンパイルエラーにカウントアップされず毎回同じ値となります。

<bean:define id="cnt" value="<%= Integer.toString(Integer.parseInt(cnt) + 1) %>" />

[ メッセージ編集済み 編集者: ぱあ 編集日時 2005-06-30 16:40 ]
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-06-30 16:49
引用:

ぱあさんの書き込み (2005-06-30 16:17) より:
引用:

Integer#parseInt
String#valueOf
等を使って
intに変換→+1→Stringに変換して格納

という手順になります。


色々試してみたのですがどうしてもできません。
自分なりに次のようなこともしてみたのですが、コンパイルエラーにカウントアップされず毎回同じ値となります。

<bean:define id="cnt" value="<%= Integer.toString(Integer.parseInt(cnt) + 1) %>" />

[ メッセージ編集済み 編集者: ぱあ 編集日時 2005-06-30 16:40 ]



cntは本当にStringですか?

どのように定義されたのでしょうか。

もし、 <bean:define id="cnt" value="1" />
としているなら、String型とは限りません。

String型、Integer型かもしれませんが、Object型と考えるべきです。

<bean:define id="cnt" value="<%=Integer.toString(Integer.parseInt(cnt.toString()) + 1)>" />

ではないでしょうか。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-06-30 16:53
引用:

ぱあさんの書き込み (2005-06-30 15:14) より:
基本的なことで申し訳ないのですがどうしても解決できないので教えて下さい。
JSPで
<bean:define id="cnt" value="0" />
と定義したcntをカウントアップしたいのですが、どうすればいいのでしょうか?



書いてましたね。。。。よく読んでいなくてすみませんでした。

<bean:define id="cnt" value="<%=Integer.toString(Integer.parseInt(cnt.toString()) + 1)>" />

toString()する必要があると思います。
ぱあ
会議室デビュー日: 2005/05/27
投稿数: 18
投稿日時: 2005-06-30 17:01
引用:


もし、 <bean:define id="cnt" value="1" />
としているなら、String型とは限りません。

String型、Integer型かもしれませんが、Object型と考えるべきです。

<bean:define id="cnt" value="<%=Integer.toString(Integer.parseInt(cnt.toString()) + 1)>" />

ではないでしょうか。



あマニュアルにはbean:defineでtypeを省略したときはString型となっていましたが違うこともあるのでしょうか?
ぱあ
会議室デビュー日: 2005/05/27
投稿数: 18
投稿日時: 2005-06-30 17:02
引用:


もし、 <bean:define id="cnt" value="1" />
としているなら、String型とは限りません。

String型、Integer型かもしれませんが、Object型と考えるべきです。

<bean:define id="cnt" value="<%=Integer.toString(Integer.parseInt(cnt.toString()) + 1)>" />

ではないでしょうか。



できました。ありがとうございます。
ところでマニュアルにはbean:defineでtypeを省略したときはString型となっていましたが違うこともあるのでしょうか?
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-06-30 17:28
引用:

できました。ありがとうございます。
ところでマニュアルにはbean:defineでtypeを省略したときはString型となっていましたが違うこともあるのでしょうか?



実際私もハマったことあるのですが、
エラーメッセージをみたところ、parseInt(Object) はダメよ。といったエラー内容でした。
おかしいなぁ。。とおもって、str.toString() としたら動いた記憶があります。
Integer.parseInt((String)str) もダメだったような。。

詳しいことはわかりませんので、経験談となってしまい、
申し訳ないです。

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