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

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

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

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

Java

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

サーブレット

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

Q&A

1回答

1863閲覧

掲示板入力フォームチェック後の投稿処理判定

gamebox

総合スコア13

JSP

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

Java

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

サーブレット

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

0グッド

0クリップ

投稿2016/06/01 13:46

##背景・実現したいこと
javaを使って、簡易掲示板を作成しています。
ところが、入力チェックのロジックは完成しているのですが、エラーメッセージがあるときだけ、
投稿処理を停止する方法がわかりません。どのようにロジックを書いたら良いでしょうか?
下記にソースコードを記載しておきます。アドバイスを下さい。よろしくお願い致します。

P.S ちなみに 「doBBSWrite(request, response, bbsData);」 をコメントアウトまたは
削除すると、投稿処理ができません。

--------ソースコード(一部)---------
import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;

public class BBSServlet extends HttpServlet {

///////////////////// メンバ変数 ///////////////////

ServletContext sc;
BBSManagerBeans bbsManager;

///////////////////// 初期化 ///////////////////

public void init(ServletConfig config)
throws ServletException
{
super.init(config);
sc = getServletContext();

String dataPath = config.getInitParameter("datapath"); if (dataPath == null) { dataPath = ""; } bbsManager = (BBSManagerBeans)sc.getAttribute("bbsmanager"); if (bbsManager == null) { bbsManager = new BBSManagerBeans(dataPath); sc.setAttribute("bbsmanager",bbsManager); }

}

///////////////////// "POST"メソッド ///////////////////

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}

///////////////////// "GET"メソッド ///////////////////

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
BBSDataBeans bbsData = new BBSDataBeans();

String data = request.getParameter("function"); if (data == null) { doBBSRead(request, response, bbsData); } else if (data.compareTo("WRITE") == 0) { doBBSWrite(request, response, bbsData); } else if (data.compareTo("DELETE") == 0) { doBBSDelete(request, response, bbsData); } request.setAttribute("bbsdata",bbsData); sc.getRequestDispatcher("/bbs.jsp").forward(request, response);

}

bbsManager.DeleteItem(index, password); bbsManager.ReadArticles(0, bbsData);

}
///////////////////// メッセージの投稿 ///////////////////

public void doBBSWrite(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData)
throws IOException, ServletException
{
BBSItem item = new BBSItem();

item.name = KanjiConv.ConvJStr(request.getParameter("name")); if (item.name == null || item.name.length() == 0){ err = "名前が入力されていません" ; request.setAttribute("err",err); }

}

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

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

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

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

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

yuji38kwmt

2016/06/12 03:40

余談なんですが、ソースコードを```:java で括ると、色づけされて見やすいです。
guest

回答1

0

doBBSWriteメソッドでエラーならばfalseを返すようにして、呼び出し元で判定してエラーページに遷移させるのはいかがでしょうか?

java

1public boolean doBBSWrite(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData) 2 throws IOException, ServletException 3 { 4 BBSItem item = new BBSItem(); 5 6 item.name = KanjiConv.ConvJStr(request.getParameter("name")); 7 if (item.name == null || item.name.length() == 0){ 8 err = "名前が入力されていません" ; 9 request.setAttribute("err",err); 10 return false; 11 } 12 return true; 13 14 }

java

1if (!doBBSDelete(request, response, bbsData)) { //入力チェック失敗 2 //エラーページに遷移 3 sc.getRequestDispatcher("/error.jsp").forward(request, response); 4}

投稿2016/06/12 03:56

yuji38kwmt

総合スコア437

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問