antについての質問です

このQ&Aのポイント
  • いつもお世話になっております。早速antについて質問させていただきます。
  • inputタスクでユーザー入力した値のプロパティを呼び出したいのですがなかなかうまくいきません。
  • プロパティの数が物凄く多くなるとターゲットの量が膨大になるのでもっとシンプルに作ろうと思っています。そこで <echo message="${${ユーザー入力値}}" />と一行にまとめた所、エラーとなってしまいます。何か良い解決策はないでしょうか?
回答を見る
  • ベストアンサー

antについての質問です

いつもお世話になっております。早速antについて質問させていただきます。 予めプロパティを複数設定しておいて  <property name="1" value="http://www.aaaa.co.jp"/>  <property name="2" value="http://www.bbbb.co.jp"/>  <property name="3" value="http://www.cccc.co.jp"/>      ・      ・      ・ inputタスクでユーザー入力した値のプロパティを呼び出したいのですがなかなかうまくいきません。 一つ一つのプロパティに対して呼び出すターゲットを作りantcallで呼び出せば可能なのですが <antcall ="number${ユーザー入力値}"> <target name="number1">   <echo message="${1}" /> </target> プロパティの数が物凄く多くなるとターゲットの量が膨大になるのでもっとシンプルに作ろうと思っています。そこで  <echo message="${${ユーザー入力値}}" /> と一行にまとめた所、エラーとなってしまいます。何か良い解決策はないでしょうか? 宜しくお願いします。

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

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

  • ベストアンサー
  • world99
  • ベストアンサー率64% (20/31)
回答No.3

少々、手強かったので、返事が遅くなってしまいました。すいません。 Big-satoshさんが、お探しになっていた変数の再評価ですが、ant単体ではできない事が判明しました。 【参考サイト】http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/faq.html#propertyvalue-as-name-for-property しかし、このサイトに記載されているように、Ant-Contribという拡張タスクライブラリを利用すれば実現できるとのことなので、試してみました。 【Ant-Contrib】http://ant-contrib.sourceforge.net/ 苦戦をしつつもなんとか、実現できましたので、以下に手順を記します。 1)antでjavascriptを利用できるようにする。 1-1)Bean Scripting Framework (BSF) サイトより、次の3つのJARファイルをダウンロードして、antのホームディレクトリ配下のlibフォルダに配置する。 【BSFとは】http://muimi.com/j/jakarta/bsf/ 【js.jar】https://developer.mozilla.org/en/Rhino_downloads_archive 【bsf.jar】http://jakarta.apache.org/site/downloads/downloads_bsf.cgi 【commons-logging】http://commons.apache.org/downloads/download_logging.cgi 2)Ant-Contribを利用できるようにする。 Ant-ContribのJARファイルを、antのホームディレクトリ配下のlibフォルダに配置する。 3)いざ検証! <project name="test" default="init" basedir="."> <property name="1" value="http://aaa.co.jp" /> <property name="2" value="http://bbb.co.jp" /> <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> <script language="javascript"> propname = project.getProperty("param"); project.setNewProperty("url", propname); </script> <target name="init" depends="input"> <property name="param" value="${pas}" /> <propertycopy name="url" from="${param}" /> <echo message="URL:${url}" /> </target> <target name="input"> <input message="取得したいアドレスの番号を入力してください" addproperty="pas" /> <echo message="user_input:" /> </target> </project>

Big-satosh
質問者

お礼

返事が遅くなって済みません。 この回答に文句ありません、完璧です!! わざわざ回答者様の貴重な時間を割いてまで回答を調べていただいて申し訳ないです。 本当に有難う御座いました。

その他の回答 (2)

  • world99
  • ベストアンサー率64% (20/31)
回答No.2

一旦、antコマンドの引数をプロパティに設定して利用するという事もできます。(この方法をお探しだったかもと思い再び回答しました。) <?xml version="1.0" encoding="UTF-8"?> <project name="qa4645490" default="init" basedir="."> <property name="param" value="${sample}" /> <target name="init"> <echo message="${param}" /> </target> </project>

Big-satosh
質問者

お礼

返事ありがとうございます、そして遅くなって済みません。 ご指摘通りソースを組みなおしてもうまくいきませんでした。 もしかしたら説明が足りなかったみたいなので再度説明させてもらいます。  入力した値と同じプロパティ名のプロパティの値を持ってきたいのに入力値が出力されてしまいます。 実際のソースです↓ ********************************************  ソース ******************************************** <?xml version="1.0" encoding="UTF-8"?> <project name="test" default="init" basedir="."> <property name="1" value="http://aaa.co.jp"/> <property name="2" value="http://bbb.co.jp"/> <target name="init" depends="input"> <property name="param" value="${pas}"/> <echo message="URL:${param}"/> </target> <target name="input"> <input message="取得したいアドレスの番号を入力してください" addproperty="pas" /> <echo message="user_input:"/> </target> </project> *****************************************  コマンド ***************************************** C:\ant -quiet [input]取得したいアドレスの番号を入力してください 1 [echo]user_input:1 [echo]URL:1 ※本当は最後のechoではinput入力した“1”と同じプロパティ名をもつ“1”プロパティの値“http://aaa.co.jp”を表示させたい

  • world99
  • ベストアンサー率64% (20/31)
回答No.1

次の方法で、antコマンドの引数に設定した値を参照する事ができます。 ------------------------------  build.xml ------------------------------ <?xml version="1.0" encoding="UTF-8"?> <project name="qa4645490" default="init" basedir="."> <target name="init"> <echo message="${sample}" /> </target> </project> ------------------------------  ant実行コマンド ------------------------------ >ant -Dsample=ハロー Buildfile: build.xml init: [echo] ハロー

関連するQ&A

  • cygwin上でantコマンドが途中で止まる

    cygwin上でもantが動かなかった理由を教えて下さい。 ・環境 windows7 ・経緯 windowsコマンドプロンプト上でant実行時に上記のエラーに遭遇 原因としてantコマンドではmakefileの生成などを行うスクリプトファイルをwindows上で動かせないというものでした。 そこでcygwin上で動かしてみたものの全く同様のエラーが発生 ただし、cygwin上でcvc3フォルダまで移動し、 ./configure /usr/bin/make と実行すると動きました。 [コマンドと結果(一部抜粋)] C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor>ant > ant1.txt BUILD FAILED C:\Users\mar\Dropbox\js-symbolic-executor\js-symbolic-executor\build.xml:105: Execute failed: ava.io.IOException: Cannot run program ".\configure" (in directory "C:\Users\mar\Dropbox\js-s bolic-executor\cvc3"): CreateProcess error=2, 指定されたファイルが見つかりません。 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1051) at java.lang.Runtime.exec(Runtime.java:620) [ant実行対象のbuilt.xml] <target name="configure-cvc3" depends="check-config.status" unless="config.status.present"> <property name="arith" value="gmp"/> <exec dir="../cvc3" executable="./configure"> (←build.xml:105行目の実行できなかった部分です。) <arg value="--enable-java"/> <arg value="--enable-dynamic"/> <arg value="--with-arith=${arith}"/> </exec> </target>

  • eclipseとantのコンパイル結果が異なる件について。

    eclipseとantのコンパイル結果が異なる件について。 coberturaの導入を検討してい原因が分からず困っています。 困っているのはcobertura自体ではなく、antでコンパイルしたクラスファイルがどうもおかしいのです。 ※antはdos上ではなく、eclipseで行いましたが、dosでも同様のようでした。 eclipseでコンパイルしたクラスファイルの半分弱のサイズになっています。 本来は同じものになるのを期待していたのですが・・・。もちろん何か私の設定ミスだと思いますので、アドバイス頂けないでしょうか。 クラス1 package sample; import java.util.Date; public class Sample1 { public void func() { Date d = new Date(); if ((d.getTime() % 2) == 0) { System.out.println("true"); } else { System.out.println("false"); } } } クラス2 package sample; import junit.framework.TestCase; public class Sample1Test extends TestCase { public void testFunc() { Sample1 s = new Sample1(); s.func(); } } build.xml(文字数の関係でコンパイルに関係ない箇所は省きました) <?xml version="1.0" encoding="Shift_JIS"?> <project name="javahelloant" default="clean" basedir="./"> <!-- プロパティ 開始 --> <!-- libがあるディレクトリ --> <property name="lib.dir" value="lib"/> <!-- ソースファイルがあるディレクトリ --> <property name="src.dir" value="src"/> <property name="test.dir" value="test"/> <!-- クラスファイルの出力先ディレクトリ --> <property name="classes.dir" value="bin"/> <property name="classes-test.dir" value="bin-test"/> <!-- プロパティ 終了 --> <!-- パス 開始 --> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> <pathelement location="${classes.dir}"/> </path> <!-- パス 終了 --> <!-- ターゲット 開始 --> <!-- コンパイル --> <target name="compile"> <javac srcdir="${src.dir}" destdir="${classes.dir}" /> <javac srcdir="${test.dir}" destdir="${classes-test.dir}" classpathref="classpath" /> </target> </project>

    • ベストアンサー
    • Java
  • javascriptの変数の渡し方

    ラジオボタンで選択した値によって表示するテーブルを変えるフォームを作っています。 AAAは入力ボックスが1つ BBBは入力ボックスが2つ 同じphpへ送信して、入力ボックスへデータは入るのですが、javascriptの値を渡すことが出来ません。 BBBでsubmit後、BBBの入力ボックスを表示することは出来ますでしょうか。 <? echo "<form method=post action=?>"; echo "<input type=radio name='user' onclick='change_user(this.value)' uid='user' value=1"; if($user==1){ echo " checked"; } echo ">AAA"; echo "<input type=radio name='user' onclick='change_user(this.value)' uid='user' value=2"; if($user==2){ echo " checked"; } echo ">BBB"; echo "<br>"; echo "<span id=inner>"; echo "<table>"; echo "<tr>"; echo "<td>AAAのフォーム</td>"; echo "<td><input name=form1 type=text value=$form1></td>"; echo "</tr>"; echo "</table>"; echo "</span>"; echo "<span id=outer>"; echo "<table>"; echo "<tr>"; echo "<td>BBBのフォーム</td>"; echo "<td><input name=form1 type=text value=$form1></td>"; echo "<td><input name=form2 type=text value=$form2></td>"; echo "</tr>"; echo "</table>"; echo "</span>"; echo "<br>"; echo "<input type=submit value=submit>"; echo "</form>"; ?> <script language='javascript'> var inner = document.getElementById('inner'); var outer = document.getElementById('outer'); function change_user (uid) { if (uid == '2') { inner.style.display = 'none'; outer.style.display = ''; } else { inner.style.display = ''; outer.style.display = 'none'; } } change_user(document.getElementById('user').value); </script>

    • ベストアンサー
    • PHP
  • Antでのビルドにエラー

    いつも参考にさせて頂いています。 表題の件ですが、現在Eclipse3.1・struts1.2.9を使用しています。 Antでのコンパイルをしてみたのですが、コンパイルエラーになります。 ■エラー内容 シンボルを解決できません。 [javac] シンボル: クラス LookupDispatchAction LookupDispatchActionを継承しているクラスでは確かにインポートしています。(インポートしていないとエラーになると思うのですが、ソース上でエラーは出ていません) ■build.xmlの中身 <?xml version="1.0" encoding="UTF-8" ?> <project name="aaa" default="compile" basedir="."> <property name="srcdir" value="JAR" /> <!-- JARディレクトリの作成--> <target name="mkdir"> <mkdir dir="${srcdir}" /> </target> <!-- コンパイル --> <target name="compile" depends="mkdir"> <javac srcdir="javaSource" destdir="${srcdir}" excludes="build.xml" /> </target> </project> 何かbuild.xml上でstrutsライブラリのパスとかを指定しないと認識してくれないのでしょうか? どうかご教授宜しくお願いします。

    • ベストアンサー
    • Java
  • PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問

    PHP+HTMLの確認画面から入力画面に戻る際のデータ保持について質問致します。 1.入力→2.確認→3.実行の3ページを作成しましたが、 2.確認で入力した値が間違っていた場合、1.入力に戻って訂正する仕様です 私は2.確認の戻るボタンにjavaのhistory.back();を使ったのですが ブラウザやOSにより、戻った際にデータが保持されていない場合があるとの事だったので 他の方法がないかご教授下さい。サンプルコードを書いて頂くと助かります。 以下、作成したコード 1.入力画面(mail.html) <html> <body> <form action="chk.php" method="post"> 件名:<br> <input type="text" name="subject" size="30" value=""><br> 送信者名:<br> <input type="text" name="name" size="30" value=""><br> メールアドレス:<br> <input type="text" name="mail" size="30" value=""><br> 本文:<br> <textarea name="message" cols="30" rows="5"></textarea><br> <br> <input type="submit" value="確認する">&nbsp&nbsp<input type="reset" value="クリア"> </form> </body> </html> 2.確認画面(chk.php) <?php $name = $_POST["name"]; $message = $_POST["message"]; $subject = $_POST["subject"]; $mail = $_POST["mail"]; ?> <html> <body> <form action="send.php" method="post"> 件名:<?php echo $subject; ?><br> 送信者名:<?php echo $name; ?><br> メールアドレス:<?php echo $mail; ?><br> 本文:<?php echo $message; ?><br> <input type="submit" value="これでOK"> &nbsp&nbsp //下記の戻るボタンで戻るとデータ保持をするようにしたい。history.back以外で。 <input type="button" value="戻る" onclick="history.back();"> <input type="hidden" name="name" value="<?php echo $name; ?>"> <input type="hidden" name="message" value="<?php echo $message; ?>"> <input type="hidden" name="subject" value="<?php echo $subject; ?>"> <input type="hidden" name="mail" value="<?php echo $mail; ?>"> </form> </body> </html> 3.送信画面(send.php) <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"]; if (!mb_send_mail("hoge@example.com", $_POST["subject"], $message, "From: " . $_POST["mail"])) { exit("メールの送信に失敗しました。"); } ?> <html> <body> <p>メールが送信されました。</p> </body> </html> 初心者ですので、わかりやすい表記をお願い致します。

    • 締切済み
    • PHP
  • sessionの使い方について

    フレームhtmlで下記のPHPを読み込みします。 --menu.php-- <td height="73"> <form method="POST" action="main.php" target="sita"> <input type="image" src="img/jyusyo.gif" width="150" height="50"> <input type="hidden" name="step" value="1"> </form></td> <td height="73"> <form method="POST" action="main.php" target="sita"> <input type="image" src="img/kouza.gif" width="150" height="50"> <input type="hidden" name="step" value="2"> </form></td> ここまで--- --main.php <form method="POST" action="kakunin.php" target="sita"> <?php if(( $_POST["step"] == 1 ) or ( $_POST["step"] == "" )){ ?> 名前 <input type="text" name="name" size="43" value="<?php echo $name ;?>"> 住所 <input type="text" name="adress" size="43" value="<?php echo $adress ;?>"> <?php } ?> <?php if( $_POST["step"] == 2 ){ ?> <title>名前</title> 借入 <input type="text" name="kari" size="43" value="<?php echo $kari ;?>"> 返金 <input type="text" name="henkin" size="43" value="<?php echo $kenkin ;?>">   <?php } ?> <input type="submit" value="送信" name="B1"><input type="reset" value="リセット" name="B2"> </form> ここまで--- <input type="submit" value="送信" name="B1">でアクションを起こさない前でも sessionで値を保持する方法ありますか? 名前、住所などを入力し送信ボタンを押さないで、借入、返金等を入力すると 名前、住所、などは消えてしまいます。 何かいい方法ないでしょうか?

    • ベストアンサー
    • PHP
  • フォームの入力チェック処理について

    確認ボタンを押しエラーがあればエラーメッセージを出力し なければ確認画面に移りたいと考えているのですがうまくいきません。 具体的には 1:入力フォームを表示 2-1:送信ボタンを押しエラーがあればメッセージ出力 2-2:送信ボタンを押しエラーがなければhiddenのname="mode" value="confirm"を渡す hiddenの値はswitchのcase文の値でconfirmで確認画面を表示します。 入力フォームを表示する段階にてhiddenを渡しているのが原因なのは わかるのですがエラーチェックを通す際の構文がわかりません・・・ また、hiddenを消すとエラーチェックが通るのですが例えば名前を入力 しメールを入力しない状態で 送信ボタンを押すとメールの入力を促すエラーメッセージが表示され名前の入力も消えてしまいます。 これは回避できるのでしょか? 見づらいかと思うのですが下記のソースです。宜しくお願い致します。 function input() { if(isset($_POST{"submit"})) { if (empty($_POST["name"])) { $error_message[] = "お名前を入力して下さい。"; } if (empty($_POST["email"])) { $error_message[] = "メールアドレスを入力して下さい。"; }if (count($error_message)) { echo "<p style=\"color: #ff0000\">入力内容にエラーがあります。</p>\n"; foreach ($error_message as $message) { echo "<p style=\"color: #ff0000\">" . "・$message" . "</p>\n"; } } } echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">\n"; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<td>お名前</td>\n"; echo "<td><input type=\"text\" name=\"name\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メールアドレス</td>\n"; echo "<td><input type=\"text\" name=\"email\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メッセージ</td>\n"; echo "<td><textarea name=\"msg\" rows=\"5\" cols=\"40\"></textarea></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"内容を確認\"></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<input type=\"hidden\" name=\"mode\" value=\"confirm\" />\n"; echo "</form>\n"; }

    • 締切済み
    • PHP
  • 画面の再読込をせずに動作する方法について

    下記のソースで動作は出来ているのですが、画面の再読込が必要な状況となっております。 そのため、再読込をせずに動作させたいと思ったのですが、どうすればできるかわからなかったのでアドバイスいただける方がいらっしゃいましたら、ご教示の程、よろしくお願いします。 【やりたい事】 1. サブ入力画面でcopyボタンを押下時、入力画面の名前とメールアドレスをサブ入力画面にコピーしているのですが、画面の再読込が必要になっているのを、再読込無しで動作させたいです。 2. 入力画面でdel2ボタンを押下時、3rdの行の内容を2ndにコピーした上で、3rdの内容を削除しているのですが、画面の再読込が必要になっているのを、再読込無しで動作させたいです。 3. これは出来ればで結構なのですが、del2(またはdel3)ボタン押下時、その行に何もデータが存在しない場合は、何かしら警告メッセージを表示できるとありがたいです。 【動作確認方法】 下記の3つのファイルをドキュメントルート直下にtestフォルダを設置し、ブラウザからindex.phpにアクセスしてください。 その後、任意の名前とメールアドレスを入力し、add2ボタンを押下するとサブ入力画面に遷移するため、そこでcopyボタンの動作を試すことができます。 また、del2ボタンの動作は、サブ入力画面で任意の名前とメールアドレスを入力後、saveボタンを押下すると入力画面に遷移するため、そこでdel2(del3)ボタンの動作を試すことができます。 【ソースコード】 1. index.php <?php mb_internal_encoding('UTF-8'); $document_root = $_SERVER['DOCUMENT_ROOT']; $list=array( "mode" , "submit" , "name" , "name1" , "name2" , "name3" , "mail" , "mail1" , "mail2" , "mail3" ); foreach($_POST as $key=>$value){ if (in_array($key, $list)) { $$key=strip_tags($value); } } if($mode=="input") { if($submit == "add2") { $name1 = $name2; $mail1 = $mail2; require_once($document_root . "/test/sub_input.html"); } elseif($submit == "add3") { $name1 = $name3; $mail1 = $mail3; require_once($document_root . "/test/sub_input.html"); } elseif($submit == "del2") { $name2 = $name3; $mail2 = $mail3; $name3 = ""; $mail3 = ""; require_once($document_root . "/test/input.html"); } else { $name3 = ""; $mail3 = ""; require_once($document_root . "/test/input.html"); } } else if($mode=="sub_input") { if($submit == "copy") { $name1 = $name; $mail1 = $mail; require_once($document_root . "/test/sub_input.html"); } else { if($name2 == "") { $name2 = $name1; $mail2 = $mail1; require_once($document_root . "/test/input.html"); } else { $name3 = $name1; $mail3 = $mail1; require_once($document_root . "/test/input.html"); } } } else { require_once($document_root . "/test/input.html"); } ?> 2. input.html <form action="./index.php" method="post"> <table width="100%"> <tr> <td>名前</td> <td><input type="text" name="name" id="name" value="<?php echo $name ?>" /></td> <td>&nbsp;</td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="mail" id="mail" value="<?php echo $mail ?>" /></td> <td>&nbsp;</td> </tr> <tr> <td>2nd</td> <td><?php echo $name2; ?><input type="hidden" name="name2" value="<?php echo $name2; ?>" /><input type="hidden" name="mail2" value="<?php echo $mail2; ?>" /></td> <td><input type="submit" name="submit" value="add2" /> <input type="submit" name="submit" value="del2" /></td> </tr> <tr> <td>3rd</td> <td><?php echo $name3; ?><input type="hidden" name="name3" value="<?php echo $name3; ?>" /><input type="hidden" name="mail3" value="<?php echo $mail3; ?>" /></td> <td><input type="submit" name="submit" value="add3" /> <input type="submit" name="submit" value="del3" /></td> </tr> </table> <input type="hidden" name="mode" value="input" /> </form> 3. sub_input.html <form action="./index.php" method="post"> <input type="submit" name="submit" value="copy" /> <table width="100%"> <tr> <td>名前</td> <td><input type="text" name="name1" id="name1" value="<?php echo $name1 ?>" /></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="mail1" id="mail1" value="<?php echo $mail1 ?>" /></td> </tr> </table> <input type="submit" name="submit" value="save" /> <input type="hidden" name="mode" value="sub_input" /> <input type="hidden" name="name" id="name" value="<?php echo $name ?>" /> <input type="hidden" name="name2" id="name" value="<?php echo $name2 ?>" /> <input type="hidden" name="name3" id="name" value="<?php echo $name3 ?>" /> <input type="hidden" name="mail" id="mail" value="<?php echo $mail ?>" /> <input type="hidden" name="mail2" id="mail" value="<?php echo $mail2 ?>" /> <input type="hidden" name="mail3" id="mail" value="<?php echo $mail3 ?>" /> </form> 以上、宜しくお願いします。

  • AntでのJunitの試験

    Antのbuild.xmlを下記のように記述して、Ant unit-testを実行させると、下記の[junit]の試験がFAILEDになってしまいます。これと同じJunitの試験はEclipse上のJunitの試験ではパスしていますので、Javaのテストプログラムそのものには間違いはありません。(同じファイルを使っています。) レポートファイルのエラーを見てみると、initializationErrorで、 org/hamcrest/SelfDescribing java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing at java.lang.ClassLoader.loadClass(ClassLoader.java:358) のようなエラーをはいていますが、理由が分かりかねています。 Antは、apache-ant-1.9.2、Junitは、juint-4.11.jarを使っています。 多分、下記xmlファイルの<junit>の書き方の問題ではないかと思うのですが、 AntのJunitの試験に詳しい方でお分かりになる方ございましたらアドバイスをお願いします。 <?xml version="1.0" encoding="UTF-8"?> <project> <property name="output" value="build/output"/> <target name="compile"> <mkdir dir="${output}/classes"/> <javac srcdir="src" destdir="${output}/classes"/> </target> <target name="unit-test" depends="compile"> <path id="for-unit-test"> <pathelement location="${output}/classes"/> <pathelement location="${output}/test-classes"/> <pathelement location="build/lib/junit-4.11.jar"/> </path> <mkdir dir="${output}/test-result"/> <mkdir dir="${output}/test-classes"/> <javac srcdir="test/src" destdir="${output}/test-classes"> <classpath refid="for-unit-test"/> </javac> <junit> <classpath refid="for-unit-test"/> <batchtest todir="${output}/test-result"> <fileset dir="test/src"> <include name="**/*Test.java"/> </fileset> <formatter type="xml"/> </batchtest> </junit> <junitreport todir="${output}/test-result"> <fileset dir="${output}/test-result"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${output}/test-result/report"/> </junitreport> </target> </project>

    • ベストアンサー
    • Java
  • PHPで使うis_null()関数

    PHP学習者です。 is_null() 関数の使い方で混乱しています。 添付の様な<form>を持つファイル nulltest.php と、それを受けて入力が nullかどうかを検証するファイルreceivee.php を作りました。 入力に何かを入れても、なにも入れなくてもis_null()は何も返しません、というか、False を返しているのだと思います。 逆に、!is_null() と否定形にすると、入力があっても無くても1,つまりtrue が返ります。 入力があれば true が返り、入力が無ければ false が返るようにするにはどうしたらよいのでしょうか?詳しい方どうか教えてください。 上記自作のファイルを以下にコピーします。 <?php echo "------------- nulltest.php ----------------</br>"; $no=null; echo "<form method='post' action='receive.php'>"; echo "<input type='text' name='testinput' value=".$no.">"; echo "<input type='submit' value='ok'>"; echo "</form>"; ?> <?php echo "------------- receive.php ------------------</br>"; $input=$_POST['testinput']; echo "======== ".$input." is ".is_null(input)."</br>"; ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう