「エラー履歴」の編集履歴(バックアップ)一覧に戻る

エラー履歴 - (2012/11/24 (土) 18:57:02) の編集履歴(バックアップ)


◆今までハマったエラーを記入


SQL文でorder byを途中に書いてエラー

order byは必ず最後に書かなければいけない。
SeasarのSQL文を作るフレームワークでも同じ。
ついでにlimit関数はOracleでも普通に使えます

プロジェクトをコピーして、実行してもページがないというエラーになる

eclipseでプロジェクトをコピーすると
いろいろなリンクがコピー前のプロジェクトになっていることがあります。
サーバを起動した時にアップロードしてるファイルパスを調べたり、
プロジェクトプロパティを開いて、パスを確認したりしましょう。

SingletonS2Container最強

Seasarでカスタムバリデートを作った時、
validate関数側でデータベース接続しようと思ってもできずに困ってました。
本来はデータベース接続して、validateを行いたい場合はFormに書いたりして、
validateでは文字列の中身をチェックしたりする為にあるらしいが。
でも、SingletonS2ContainerでConnectionクラスなどを直接呼び出して、
データベース接続することはできるようだ。
このやり方は結構使うべきでないところでも使えてしまうので、最終手段として残しておく。
本当に実装したいのに無理な時に使おう。

validate関数を作って、呼び出す時アノテーションが先に呼び出される

変数にアノテーションで@Requiredなどを書き、
関数に@Execute(validate="methodName", input="hoge.jsp")と書くと、
まずアノテーションチェックが通り、その後関数に登録したvalidate関数が呼ばれる。
※@Execute(validator=true)と@Execute(validate="method")は語尾が違うので注意
その為、A,B,Cをチェックしたい場合とCのみチェックしたい場合は
アノテーションでCのみ(毎回チェックするもののみ)チェックして、
自分で作った関数でAとBをチェックすれば実装できる。
エラーメッセージなどはエラーが発生する場合しか表示せず、
アノテーションで引っかかってると、元の画面に戻ってるのに
エラーメッセージが表示されないし、ログにも何も表示されないので
わかりにくいので注意。

検索機能を作った時、何度もできましたって言ったものの

こっち直したらこっちが壊れた…などで何回も呼んでしまった。
エラーチェックはちゃんとやろう。

入力チェックは、
  • 正常な値が入力された場合
  • 何も入力してない場合
  • 入力はされているが意図しない値が入力された場合(2byte文字や数字や記号など)

javascriptでエラーの見方が分からずに、ハマった。

FireFoxでツール→ウェブ開発ツール→エラーコンソールで
エラーを見ることができる。
関数の文字列もあってるし、include先の関数もちゃんとあるのに、エラーが出る場合は
type="text/javascript"などの決まり文句などもチェックしよう。