質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

Q&A

1回答

2483閲覧

JAVA : String型配列→int型(配列なし)に変換

game

総合スコア10

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

0グッド

0クリップ

投稿2016/06/07 10:56

編集2016/06/07 11:12

###前提・実現したいこと
参考書のプログラム(掲示板プログラム)に、下記機能を追加しようと考えています。
※現在の仕様だと、最新のメッセージ(1件)のみしか、削除できません。

・「削除チェックボックスに複数チェックを入れた場合、
パスワードが一致するものは、すべて削除する。」ようにしたい。

###発生している問題・エラーメッセージ
以下のように、実装したところ、エラーメッセージが発生しました。

<変更前>
String delindex = request.getParameter("delIndex");
int index = Integer.parseInt(delindex);

<変更後>
String[] delindex = request.getParametervaluse("delIndex"); //変更後(複数)
for(int i=0; i < delindex.length; i++){
int index = Integer.parseInt(delindex[i]);
}

エラー発生箇所:int index = Integer.parseInt(delindex);

for文内は、String型の配列をint型に変換できているのですが、
for文を使ってしまうと、下記プログラムが動きません。
・bbsManager.DeleteItem(index, password);
・BBSdataBeans側の削除処理
for文内部のみしか実行されないので、他の方法がありましたら、ご教授ください。
どのように対処したら良いかわかりません。

下記に、参考書のソースコードを記載します。
削除の処理自体は、BBSManagerBeansクラス。

##ソースコード(1)

////////////// メッセージの削除(サーブレットのソース) ///////////////////

public void doBBSDelete(HttpServletRequest request, HttpServletResponse
response, BBSDataBeans bbsData)
throws IOException, ServletException
{
**String delindex = request.getParameter("delIndex"); **
if (delindex == null) {
bbsManager.ReadArticles(0, bbsData);
return;
}
int index = Integer.parseInt(delindex);

String password = request.getParameter("pwd"); if (password == null) { bbsManager.ReadArticles(0, bbsData); return; } *DeleteItemメソッド:インデックスに対応するメッセージを取ってきてパスワードを比較し、 同じだった場合に限ってそこをnullで置き換え* bbsManager.DeleteItem(index, password); bbsManager.ReadArticles(0, bbsData);

}

##ソースコード(2)

//////// メッセージを削除 (BBSManagerBansのソースコード)////////////

public void DeleteItem(int index, String deleteKey)
{
BBSItem item;
try {
item = (BBSItem)bbsItems.get(index);
}
catch(IndexOutOfBoundsException e) {
return;
}

if (item == null) { return; } if (deleteKey.compareTo(item.deleteKey) != 0) { return; } bbsItems.set(index, null); WriteDataFile();

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

swordone

2016/06/07 11:04

どういうエラーかを説明してください。
game

2016/06/07 11:09

String[]はint型に変化できません。というものでした。
swordone

2016/06/07 18:27

その場所でそのエラーが出てくるのはあり得ないと思うのですが。場所とエラーをもう一度確認してもらえませんか?
guest

回答1

0

parseIntしてるところがおかしいだけでは?

java

1public void doBBSDelete(HttpServletRequest request, HttpServletResponse 2 response, BBSDataBeans bbsData) 3 throws IOException, ServletException 4{ 5 String[] delIndexes = request.getParameterValues("delIndex"); // <- 変数名を変更 6 if (delIndexes == null || delIndexes.length == 0) { // <- if文の条件を変更 7 bbsManager.ReadArticles(0, bbsData); 8 return; 9 } 10 // int index = Integer.parseInt(delindex); // <- ここでparseIntする意味がない。 11 12 String password = request.getParameter("pwd"); 13 if (password == null) { 14 bbsManager.ReadArticles(0, bbsData); 15 return; 16 } 17 18 /* DeleteItemメソッド:インデックスに対応するメッセージを取ってきてパスワードを比較し、 19 同じだった場合に限ってそこをnullで置き換え */ 20 21 for(int i = 0; i < delIndexes.length; i++){ 22 int index = Integer.parseInt(delIndexes[i]); 23 bbsManager.DeleteItem(index, password); // <- delIndexが複数ある、ということは複数回削除では? 24 } 25 bbsManager.ReadArticles(0, bbsData); 26} 27

投稿2016/06/07 11:12

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問