• 締切済み

Strutsフレームワークを使用した場合のダイアログの出し方

あるjspファイルがありまして、そこで入力フォームがあるとします。その入力フォームにて、送信ボタンをクリックした際、空白で送信することを防ぐダイアログ(値を入力して下さい など)を出します。それと同時に、「送信しても宜しいですか?」というような、OKとキャンセルを選択させるダイヤログも出します。要するに、先に空白であるかどうかを判定し、その条件を満たした時に、送信するかどうかのダイヤログを出したいのです。どのように記述すれば良いのでしょうか?ちなみに、Strutsのフレームワークを使用しています。 onclick="javascript:if(confirm('送信しても宜しいですか?')){do(Form, 'commit')} return false;" このように記述すると、送信するかどうかの選択ダイヤログは出るのですが、これから、どうやって空白を判断させるのが分からないです。具体的な記述方法を教えてください!!やっぱり、入力フォームのnameを使うんですかね?

noname#15844
noname#15844
  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 この方法でもかけない事もないが、結構難しいと思うよ。  HTMLフォームのSubmitクラスのボタンは、Internet Explorerだと、JavaScriptで「False」が返された時、サブミットを停止して動作しない。  つまり、「内容チェック→エラーの場合はメッセージを出してFalseを返す→Confirmの結果を返す」という流れの関数を作って、onClickでその関数を呼び出すようにすると良い。 1.内容をチェックして、空白であればFalseなのでサブミットが中止される 2.送信で「いいえ」が押されるとConfirmがFalseを返すのでサブミットが中止される 3.それ以外の場合は、ConfirmがTrueを返すのでサブミットが実行される とこうなるわけだな。でもJavaScript切られたら終わりよね(空白でも送信できてしまう)。

noname#15844
質問者

お礼

丁寧な回答、有難う御座いました。 私がやろうとしてることは困難なんですかねぇ。一応、言われた通り試みてみたんですが、指摘されているように、難しいですね。

関連するQ&A

  • ダイアログの出し方について

    あるjspファイルがありまして、そこで入力フォームがあるとします。その入力フォームにて、送信ボタンをクリックした際、空白で送信することを防ぐダイアログ(値を入力して下さい など)を出します。それと同時に、「送信しても宜しいですか?」というような、OKとキャンセルを選択させるダイヤログも出します。要するに、先に空白であるかどうかを判定し、その条件を満たした時に、送信するかどうかのダイヤログを出したいのです。どのように記述すれば良いのでしょうか?ちなみに、Strutsのフレームワークを使用しています。 onclick="javascript:if(confirm('送信しても宜しいですか?')){do(Form, 'commit')} return false;" このように記述すると、送信するかどうかの選択ダイヤログは出るのですが、これから、どうやって空白を判断させるのが分からないです。具体的な記述方法を教えてください!!やっぱり、入力フォームのnameを使うんですかね?

  • どんなフレームワークが良いでしょうか?

    どんなフレームワークが良いでしょうか? Java言語を用いた画面が4つぐらいのWebシステムを作成しようとしています。 下記の環境はほぼ決まっています。 OS:Windows XP 言語:Java 1.6 APサーバ:Tomcat 6.0 開発ツール:eclipse 3.4 DB:HiRDB 8 サーブレットとJSPについてはある程度知識がありますが、 フレームワークについてはほとんど知識がありません。 (Struts1のシステム開発を少しだけ手伝ったことがあるぐらいです。) データベースアクセスについてもプログラム内にSQL文を自分で記述する 初歩的なやり方でしか経験がありません。 出来ればフレームワーク初心者でも仕組みがわかりやすいフレームワークで 作成しようと考えています。 フレームワークの組み合わせによってはXMLだらけになって 管理が大変だという記述も見ました。 フレームワークを知らない自分がいろいろ試すより、 これまで皆さんが用いた様々なフレームワークについてご意見を頂きたいです。

    • ベストアンサー
    • Java
  • S2Strutsの無設定で<html:form>は使えない?

    お世話になります。 現在S2Strutsの開発をおこなっていて無設定Strutsを使おうと思っています。 その際にstruts-config.xmlに記述なしでPOJOでクラスを作成し、入力フォームを作成したのですが通常strutsで使用する。 <html:form>タグでエラーが発生してしまいました。 おそらくstruts-config.xmlにマッピング記述がない為に発生しているのだと思いますが無設定Strutsでは<html:form>は使用できないのでしょうか? 代替え案などがあればご教授ねがえればと思います。 サンプルはmayaa板のみでJSPを使ったものがなかったので悩んでいます。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • Strutsの情報保持の仕方について

    今下記の様な画面(処理)を作成しているのですが、 どうしても分からない点が何点かあります。。 【入力画面へのリンク】⇒ 【初期値で使用する値の取得Actionクラス】⇒【入力画面】⇒【確認画面】⇒【完了画面】 (1)入力画面で入力した値を保持したいため入力画面でのstruts-configの設定はscope="session"と指定しました。 【入力画面】⇒【確認画面】 確認画面での表示ではrequestからの表示としたいため、struts-configの設定はscope="request"と指定した。 この場合、【入力画面へのリンク】を押した際にjavax.servlet.jsp.JspExceptionとなってしまう。 しかし、【入力画面】⇒【確認画面】でのscopeをscope="session"としてやるとうまくいく。 なぜ前者がうまくいかないのかの理由がまず分かりません、、 (2)【確認画面】から【入力画面】のURL(~.do)とURLを直打ちした場合の挙動がどのような 仕組みなのか分からない、、 実際に試したがキャッシュを読み込んでる??用にしか見えなかった。 【入力画面】のexecute()は走らないのか?! 主に上記二点がよく分からずに悩んでおります。 (1)に関しては【入力画面】⇒【確認画面】でscope="session"でもいいのですが(特にrequestする理由はないので)、 ただなぜstruts-configでsession⇒requestとするとエラーになるのか?ということが知りたく。。 イメージ) これだと上手くいかない、、Confirmのscopeをsessionに変えると上手くいく、、、なぜ? <action path="/~Regist" type="~RegistAction" validate="false" scope="session" name="~"> <forward name="success" path="~.jsp" /> </action> <action path="/~Confirm" type="~ConfirmAction" validate="true" scope="request" input="~" name="~"> <forward name="success_confirm" path="~.jsp" /> </action> <action path="/~Complete" type="~CompleteAction" validate="false" scope="request" name="~"> <forward name="success_complete" path="~.jsp" /> </action> まだまだ勉強中で変な質問をしているかもしれませんが、 詳しい方ご教授頂けたらと思います、宜しくお願い致します。

  • Struts2のValidation後のパラメータ

    Struts2のValidation機能を利用して入力チェックを行っているのですが、 入力画面表示時にGETパラメータを使用している場合、バリデーションエラーでINPUT画面に戻った際にGETパラメータが消えてしまいます。 Struts2: 2.3.15を使用しています 入力画面(index.jsp)は"simple/index.action?id=aa"のようにURLにGETでIDを指定する形式で表示します。(画面上に「ID:aa」が表示されます) 次にタイトル未入力のまま「確認」ボタンを押すとValidationが実行されてエラーメッセージとともに入力画面に戻ってくるのですが、「ID:」と表示され、Actionクラス(Index.java)のidが未設定の状態になります。 Validationエラー後もidがセットされ「ID:aa」が表示されるようにするにはどうすれば良いのでしょうか? Struts2 を触り始めて間もないですので質問自体が的外れかもしれません・・・ 何かアドバイスをいただけたら幸いです。 よろしくお願いいたします。 サンプルコードを以下に示します。 [struts.xml] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="simple" extends="struts-default"> <action name="index" method="index" class="simple.action.Index"> <result name="success">/index.jsp</result> </action> <action name="confirm" method="confirm" class="simple.action.Index"> <result name="success">/confirm.jsp</result> <result name="input">/index.jsp</result> </action> </package> </struts> [Index.java] package simple.action; import com.opensymphony.xwork2.ActionSupport; public class Index extends ActionSupport{ private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } public String index(){ return SUCCESS; } public String confirm(){ return SUCCESS; } } [Index-confirm-validation.xml] <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> <!-- タイトルの必須入力チェック--> <field name="title"> <field-validator type="requiredstring"> <message>タイトルを入力してください</message> </field-validator> </field> </validators> [index.jsp] <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> <!DOCTYPE html> <html> <body> ID:<s:property value="id" /> <s:form action="confirm"> <s:textfield name="title" label="タイトル" ></s:textfield> <s:submit value="確認"></s:submit> </s:form> </body> </html>

    • ベストアンサー
    • Java
  • Strutsなどのフレームワークが必要な開発って

    JAVAを勉強している者です。 これまでJSPやサーブレットを使って、ある程度のシステムが作れる程にはなったのですが、フレームワークの事が気になっています。 少し「Struts」の勉強をしてみましたが、使いづらさと、表示画面への 柔軟性の無さなど、良い面が見つかりませんでした。 また、HTMLベースのソースコードも、フレームワーク独自の形があっ たり、TomcatなどJAVA側のバージョンアップで不具合が生じる可能性 なども、耳にしました。 ●そこで思ったのは、フレームワークを使う状況というのは、次の様な 時なのではと思っています。 ・エンジニアのレベルが、時間さえあれば、一人でJSPやサーブレット  を使ってシステムを作り上げる人と、「if」文や「for」文などの  本当の基礎しか知らない人が混在した開発環境の時。 ・開発プロジェクトで、開発人数が多く(十数人など)大規模なシステ  ムで、柔軟性や工期短縮よりエンジニアの管理をする必要がある時。 ●逆にこんな時には必要がないと考えています。 ・携わる開発者が、一人でサイトを作れるレベルであり10人以内程に  よる規模のシステム作成時。 ・表示画面用のファイルと、他のプログラムファイルを分ける事 (MVC)を意識しすぎる事より、システム変更への柔軟性や、工期が  早くなる事が分かった時。 ・エンジニアのやりがいを引き出す為。 ※個人的には、入力画面はともかく、出力結果などをMVCにこだわると  あまり良い作成が出来ない気がしています。  また、出力画面と処理用プログラムのファイルを分けた場合には、  ソースの確認や編集が行いづらくなります。  ただ、フレームワークを使わない時は、事前にエンジニアどうしで、  一定の関数を使う事を基本条件にすると便利かもしれませんね。 (例えば、~本に載っている関数を使用する等)  もし決まった関数以外で他の関数を使う時は、他のメンバーの了解  を得る等のルールがあると良いかもしれません。  (Eclipse関係の入門書とプラスαの関数で大抵の事は出来るのではと思っていますが...)  多分こうした方が、フレームワークを使うより、エンジニアのやりが  いも向上するし、結果的には効率も上がりそうな気がしています。  また、上記のフレームワーク条件も、完全にそのようにしなければ  ならないのではなく、状況や必要に応じて判断することが大切なの  ではと思っています。  もし、他にフレームワークのメリット・デメリットがありましたら  教えていただけましたらと思っています。

  • Struts2のタグについて

    Struts2のタグにてJSP内にテキストボックスを以下のように記述しています。 この場合、JSPが最初に表示されたときはテキストボックス内には初期値として40 が表示されます。しかし、テキストボックスに 5 を入力しなおして サブミットし、再度JSPの画面が表示された時には40の値が表示されてしまいます。 value="40" の部分を消しておけばJSP画面再表示時には入力した 値が表示されますが初期表示としてvalueの部分は欲しいと思っています。 初期値の設定項目であるvalueの部分を残しながらもJSPの再表示時には 入力しなおした値が表示されるというような処理は以下のタグでは 無理なのでしょうか。何か良いお知恵がありましたらよろしくお願いいたします。 <s:textfield label="会員ID" name="id" value="40" />

    • ベストアンサー
    • Java
  • 確認ダイアログを表示出来ない

    jspファイルからJavaサーブレットへ削除対象情報を渡し、削除処理をしています。 submit処理の際、Javascriptでconfirmを利用して削除確認ダイアログを表示させたいのですが、表示が行われず、Javaサーブレットの処理が正しく実行されてしまいます。jspファイルをHTMLで表示させたところ、削除情報パラメータは見かけ上は正しく渡されているようです。以下のJavascriptの記述で問題となる部分が有るでしょうか? 削除対象確認画面nnnn.jspより呼び出されるjavascript check_nnnn.jsの記述は次の通りです。 taisyo_Noの値の先頭から8バイトにキー項目、9バイト目より確認情報をセットしています。 ************ function check_nnnn() { wkname = document.formnnnn.taisyo_No.value.substring(8); wkres = confirm("削除対象は次の通りです。" + "\n\n" + "対象:" + wkwname); if (!wkres){alert("確認画面に戻ります");return false;} } ******************** 尚、ブラウザはIE6.0を使用しております。

  • Java Struts MVCモデル 正しい書き方

    Java Struts1.3.10 皆でとあるシステムを作ることになったのですが、 JSP・ActionForm・Actionそれぞれの関係の在り方について悩んでいます。 ログイン機能を例とします。 1機能、1Form、1Actionとした場合は: 1.Login.jspでIDとPASSを入力。 2.LoginResultForm.javaにIDとPASSを格納。 3.LoginResultAction.javaでDBチェック(IDとPASSの存在・権限) 4.Result.jspへ遷移。ID・PASS・権限を表示する 使用するファイルは4つとなります。 1JSP、1Form1、Actionとした場合は: 1.Login.jspでIDとPASSを入力。 2.LoginForm.javaにIDとPASSを格納。 3.LoginAction.javaでDBチェック(IDとPASSの存在) 4.ResultForm.javaにIDとPASSを渡す(Sessionなど) 5.ResultAction.javaでDBから権限を取得、ResultFormに格納 6.Result.jspへ遷移。ID・PASS・権限を表示する 使用するファイルは6つとなります。 現在意見が三つありまして、 1.違うForm同士にデータのやり取りが発生するようであれば(1機能とし)、同じフォームにするべきではないのか? 2.Fromのメンバの数が少ないうちは良いが、今後数が増えると可読性が悪くなるから分けるべきではないのか? 3.フォームは同じでないとまずいが、ActionはJSPごとに分けるべき というものです。 1.ではログイン者情報をセッションに保持することは許可しています。(一部例外を認めている) これらはいずれもStrutsフレームワークの範疇から逸脱している、あるいはMVCモデルに反している、そもそも非効率的ということはないのでしょうか? つまりあくまで実装の仕方の問題でしかない、という結論でよろしいでしょうか?

    • ベストアンサー
    • Java
  • TOMCATを使用したStrutsエラーについて

    動作環境 OS:WindowsXP Browser:IE8 Tomcat6.0 Tomcatをインストールしたwebapps直下にあるjspファイルを実行したいと思っています。 その中にStrutsを使用する記述があるのですが、実行するとエラーが出ます。 ネットでも色々と調べたのですが、原因がつかめません。 1.jspファイル <%@ page pageEncoding = "Shift_JIS" %> <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html> <body> <html:form action="cancel_view" > <html:text property="stringData" size="15" maxlength="15" /> <html:submit property="submit" value="送信" /> </html:form> </body></html> 2.web.xmlファイル <taglib> <taglib-uri>/tabs/struts-html</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> 3.エラー内容 3.1.IE8 org.apache.jasper.JasperException: JSP ファイル "/tags/struts-html" が見つかりません 3.2.Tomcat6 2010/11/20 21:13:17 org.apache.jasper.compiler.TldLocationsCache processWebDotXml 警告: 内部エラー: ファイル /WEB-INF/web.xml が見つかりません 「1.」の3行目にエラーがあるみたいです。何故ならその行を外せばエラーは消えます。 ですが、何も表示されません。 「3.2.」にweb.xmlは保存されています。そこに必要な*.tldファイルも保存されています。 libフォルダも作り動作に必要な*.jarファイルを保存しています。 web.xmlがあるにもかかわらず、見つかりませんと出るのは何故でしょうか? 環境変数のパスが足りないとも思えません。 どなたか詳しい方、エラー解消のご教授の程よろしくお願いします。

専門家に質問してみよう