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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3708閲覧

画面側の情報をサーバー側に送るときフラグを使う以外の方法を知りたい

k499778

総合スコア599

Java

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Seasar2

Seasar2はJ2EE/Java EEでの大規模な開発を効率良く行なうためのフレームワークです。 必要な設定ファイルを従来のものと比べて少なくし、依存性を分離して記述しています。 そのため、生産性の高いプログラム開発が可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/08/12 02:11

現在Java、Seasar2(SAStruts/Doma)、HTML(JSP)、jQueryを使ってDB連携をしたアプリケーションを作っています。

まだまだ初心者なのであらゆるノウハウ、アイデアを知りたいと思っています。

そこで質問があるのですが、
結論から言うと、

JSP側の情報(たとえば、パスワード切り替えボタンが表示か非表示か。など)をJava側に送るとき、hiddenでフラグを立てる以外にどんな方法があるでしょうか?

今私はJSP側の情報をJava側に送るとき、
hiddenタグでhogeFlagのようなものを作り、それをJSP側のFormタグ内に記載し、パスワード切り替えボタンが「表示」のときはvalue="0",「非表示」のときはvalue="1"のようにjQueryで制御して、その情報をJava側に送っています。ActionFormあるいはDtoにもプロパティをいちいち追加しないといけなくて困っています。

これは一例で、パスワード切り替えボタン以外にも多くの状況でフラグを立てることが多く、
複雑な画面になるとフラグまみれになって難解なコードになりがちです。

このような状況をなんとか打開したいのですが、
JSP側の情報をJava側に送るときにフラグを立てる以外で何かいい方法や発想はあるでしょうか?
状況によってやり方は変わると思うのですが、ざっくりでもいいので何か思い当たるものがあれば教えていただきたいです。
あるいはそのようなノウハウをたくさん会得する方法でも構いません。
もちろん1コードでも多く書き、多くのアプリケケーションを作ることが大切だとは思いますが、具体的な方法や効率的な勉強法が知れれば幸いです。お願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

いくつかやり方はあるとは思いますが、一つのやり方としては
状態によって、actionのURLを変えてしまう、という方法があります。
例えば、
パスワード認証URL:/app/foo/auth/password
自動認証:/app/foo/auth/autoAuth
のように2つのURLをControllerで別メソッドで用意して
submit時にFormのactionをJSで切り替えて送信し
処理を切り分けるようなやり方です。
URLを分けることで、クラスやメソッドを切り替えることができるため
Java側の処理もオブジェクト設計がやりやすくなります。

また、根本的なところで行くと、そもそもそんなにフラグを多用するような
設計にしない、というのが大事です。
k499778さんの作られている画面が、どのように複雑なのかはわかりませんが
画面自体をもっとシンプルにする(機能ごとに画面やFormを分ける等)ことを
検討されてみてもいいかもしれません。

投稿2015/08/12 02:27

MakotoMiyazaki

総合スコア297

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

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

k499778

2015/08/12 02:40

MakotoMiyazakiさん 返答ありがとうございます。URLを変えるという方法も試してみたいと思います! 迅速な対応ありがとうございました!
guest

0

Seasar2には詳しくないのですが、JSP側の情報をJava側に送るためにフラグを立てなければならない理由はなんでしょうか?例えば、Java側で「パスワードフォームを表示していない」という状態を受け取りたい理由はなぜですか?

フラグを立てないでも済ませられる手段の1つにリクエスト時のパラメータ制御があります。パスワードの例で言えば、「フォームから送信する時に、パスワードフォームが非表示だったらサーバーのリクエストパラメータに追加しないようにjQueryで制御する」とか。

完全に状態を同期させなくてもいいようにアプリケーションを設計することを考えてみてはいかがでしょうか?

投稿2015/08/12 03:12

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

k499778

2015/08/12 03:32

kompiroさん 回答ありがとうございます。 フラグを立てなければならないのではなく、私が若輩者なのでそのようなやり方しか知らないので他の方法も知りたいと思い投稿しました。 パスワードの「表示・非表示」ボタンの状態の情報をJava側で受け取りたいのは、ほんの一例ではありましたが、エラーチェックのときですかね。 なにか登録フォームがあってそのパスワードが文字数が短いとかで入力チェックに引っかかり、画面を再表示する際に、パスワードボタンの状態をそのままに維持したいときが具体例として挙げられます。パスワードの「表示・非表示」ボタンはタグ内にshowクラスがあれば「表示」、hideクラスがあれば「非表示」に変わるといった設計です。jQueryでaddClass,removeClassを使って切り替えます。 パラメータ制御も自分のよく陥る状況で使えないかどうか調べてみます。 ありがとうございました。感謝しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問