• ベストアンサー

JSPファイルに書いたの各タグ情報を拾うには?

JSPファイルの中に書いたHTMLやカスタムタグの情報を拾って テキストファイルに書き込みたいと思っています。 実際にやりたいことは、<INPUT>タグや、カスタムタグ<hoge>に付与した、 name属性の値を列挙したいという様な内容です。 例)JSPファイルに以下の様な入力項目を記述   <INPUT type="text" name="hoge1" value="10">   <INPUT type="text" name="hoge2" value="10">    :     ↓   テキストファイルに   hoge1   hoge2    : テキストファイルに書き出すという部分は分かりますが、JSPファイルから 各タグを判別し、その中のname属性の値を取得する・・・という部分が どうやってやろうかと困っています。 XMLのパーサを利用して・・・と考えたりもしましたが、HTMLの各タグは エンドタグが決まって記述されている訳ではないため、利用出来ないかも? と思っています。 何か良いものがあればと思っていますが、見つけられず、通常にファイルを オープンして入力項目タグがあるかどうか、ひとつずつ調べるという方法しか 思い付いていません。 もし何か良い方法があれば是非教えて下さい。

  • Java
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • luckymako
  • ベストアンサー率55% (29/52)
回答No.2

全角スペースを取り除いて使用してください。 String strin = "入力ファイル"; Pattern pattern = Pattern.compile("<INPUT.*?(?:name\\s*=\\s*\"(.*?)\").*?>", Pattern.CASE_INSENSITIVE|Pattern.DOTALL|Pattern.MULTILINE); Matcher matcher = pattern.matcher(strin); while(matcher.find()){  System.out.println(matcher.group(1)); }

everfor
質問者

お礼

コーディング例を掲載していただき、ありがとうございました。 私自身、勉強して一度作ってみましたが・・・こちらの方がとても スマートになっているので、もっと勉強が必要だと痛感しました。 他にも正規表現を利用して色々とやってみたいことがあるので、 参考にさせていただきます。

その他の回答 (1)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

そのJSPファイルがお手元にローカルにある、書き方も一定である、ということなら、「name属性の値を取得する」は、Javaの正規表現プログラミングの初心者練習課題としてちょうど良いと思います。私はあえてここにコードサンプルを書きませんから、ぜひご自分で挑戦してみてください。

参考URL:
http://java.sun.com/docs/books/tutorial/essential/regex/index.html, http://www.regular-expressions.info/
everfor
質問者

お礼

正規表現で行えばいいんですね。ありがとうございます。 また、参考のURLをありがとうございました。 早速勉強して、ある程度の判定が行える様になりました。

関連するQ&A

  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • Struts2のタグについて

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

    • ベストアンサー
    • Java
  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML
  • テキストボックス値をsetPropertyでセット

    HTMLのテキストボックス<input type="text">値を JSPのsetPropertyでセットBeanのフィールドとしてセットし、 Servlet側で取得したいと思っています。 JSPでのsetPropertyの書き方は次のようで、 直接valueに値を書く(またはbeanからとってきた値を書くようですが、 [質問1.]テキストボックスに入力された値を代入することは可能でしょうか? [質問2.]どのように記述すればよろしいのでしょうか。 ---JSP setPropertyの記述 <jsp:setProperty name="オブジェクト変数"             property="プロパティ"             value="プロパティ値"             param="パラメータ" />

  • value文のないInputタグ

    Inputタグの内容を送信したいのですが、 例えば、フォームF1のテキストエリアT1に、 document.F1.T1.value = "テスト"; として、JavaScript側から値(value)を指定します。 この場合、 <form method="post" name="F1"> <input type="text" name="T1"> </form> とするだけで、ブラウザに、「テスト」と表示させられますよね。 しかし、Inputタグの中に「value」の値が無いため、 他のURLに、テキストエリア「T1」の内容を送信することができません。 このようにJavaScript側から値(value)を指定したInputタグの値を送信する方法について教えてください。

  • ボタンを押すとテキストボックスが増えるJavaScriptについて教えてください

    Javascriptで質問です。 <input type="text" name="hoge1" value=""> <input type="text" name="hoge2" value=""> <input type="text" name="hoge3" value=""> というようなテキストボックスがあり、「追加」というボタンを押すと 新たなテキストボックス <input type="text" name="hoge4" value=""> が追加されるようなJavascriptを作成したいと考えています。 新たに作られたテキストボックスには name="hoge4" name="hoge5" ・ ・ ・ というように、nameの部分に「hogeの右にある番号に1ずつ加算された名前」を付けていきたいのです。 検索すると、テキストボックスを追加していくだけのサンプルはいくつかあったのですが、nameの部分を加算していく、という例が無くて行き詰っています。 よろしくお願いいたします。

  • JSP→JSP フォームチェック

    困っているので助けてください。 まずプログラムの説明をさせてもらいます。 JSPからfromをつかってJSPにフォーム情報を送ります。 プログラムはこんな感じです。 <form action="abcdefg.jsp" method="post"> <input type="hidden" name="abc" value="abc"> <input type="hidden" name="def" value="def"> <input type="checkbox" name="aa" value="aa"> <input type="checkbox" name="bb" value="bb"> <input type="checkbox" name="cc" value="cc"> <input type="submit" value="次へ"> </form> これをabcdefg.jspで受け取る場合 String hidden_abc = request.getParameter("abc"); String hidden_def = request.getParameter("def"); とhiddenは必ず値が入っているのでこれで受け取れるのですが チェックボックスは選択しているかどうかわからないので上の記述では だめなようなのですがどのようなプログラムを書いたらいいのですか? 説明がうまく出来なく申し訳ないです。よろしければ教えてください。

    • ベストアンサー
    • Java
  • JSP + ラジオボタン

    JSP+Servlet+Beanで作ってます。 JBuilder5を使ってます。 JSPはラジオボタン、テキスト、ボタン等があります。 <INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A <INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B <INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C としています。 たとえば、Bを選択時、ボタンクリックで Servletにリクエストを送信しますが、 Servletから再びJSPを呼び出し、画面を 表示するとき、ラジオボタンはBを選択 させたいのですが、どうしたらいいですか? FormタグのCHECKEDというオプションを どのように使えばいいのか教えていただきたいのですが。 テキストには、Beanでsetメソッド、 JSPでは、<jsp:getProperty・・・>を使って セットできているんですが、ラジオボタンも 同様ですか? @@@・・・JSPのタグを勉強しないといけないです。 @@@勉強不足です。

    • ベストアンサー
    • Java
  • paramタグのvalue値を取得する方法

    はじめまして。JavaAppletにかんするHTMLで <applet name="myApplet"> <param name="myParam" value="ABCDE" /> </applet> としたとき、Javascriptによって、このparamタグの値「ABCDE」だけを文字列として取得するには、どのように記述すればよいのでしょうか。(特にIE 7やFireFox 3で動作するように) フォームの扱いと同様に、 text = document.myApplet.myParam.value; のように書いてみましたがうまくいきません。ご存じの方がいらっしゃれば、教えてください。 条件としては、paramタグにid属性を加えたり、JavaAppletそのもののソースコードを書き換えたりする必要がない方法でお願いします。(appletタグにid属性をつけるのはOK)

  • HTMLのSELECTタグの使い方、JSPのセッション格納について

    HTMLのSELECTタグの使い方、JSPのセッション格納について Jspで開発をしております。IE7以上です。 同一画面内でボックスで選択した値をそのままセッションに格納したいのです。 Javascriptで制御したいのですが、なにかいい方法をご存知ですか? <script type="text/javascript"> function test(obj) { with(obj) { form.text1.value = options[selectedIndex].value; } } </script> <SELECT NAME="select1" onchanged="test(this)"> <OPTION VALUE=1>First <OPTION VALUE=2 selected>Second <OPTION VALUE=3touya">Theard </SELECT> またselectedでは初期の表示のみ選べて値の初期値はscript側で設定するのでしょうか? これだとボックスに変化があれば値が取得できるみたいです。 できればボックスをいじらなければ初期表示の値をセッションに格納。 ボックスをいじれば選択した値をセッションに格納。

専門家に質問してみよう