Lift

scalaのobject

scalaのobjcetって現状だとオーバーライドできないのね。残念。 ProtoUserのメンバとかオーバーライドしたいのに。 一応、将来サポート予定だそうです。

liftのローカライズ

lift内には様々なありもののモジュールがありそれらを使えば例えばユーザー登録の仕組みなどは簡単に作れるのだがそのままだとエラーメッセージなどが英語のままで困る。またサイトを国際化対応で考えているならばエラーメッセージなどは外部ファイルにまと…

LiftRules.addAroundで追加したaroundがなぜか2度呼ばれる

liftにはaroundと呼ばれるリクエスト処理をハンドルする為の機構が用意されていて、こんなコードで例えばログを残すことができる。と、公式サイトには書いてある。 (参照: http://liftweb.net/index.php/HowTo_hook_into_the_lift%27s_request_processing_cy…

Scalaのライブラリにバグ?

scala.io.BufferedSourceなのだが、入力ストリームの1文字が2バイト以上の時にうまくうごかないかも。 というのもdecodeした後のバッファと変換前のバッファを同じサイズで確保しているので、 val byteBuffer = ByteBuffer.allocate(buf_size) var charBuffe…

フォームの処理 - lift

http://liftweb.net/index.php/Hello_Darwin#my_first_formより写経する。 フォームを作る。 helloFrom.html <lift:surround with="default" at="content"> <h1>Hello Form</h1> Hello <lift:HelloForm.who /> <br/> <form> <label for="whoField">Who :</label> <input type="text" name="whoField"/> </form></br/></lift:helloform.who></lift:surround>

動的ページを作る - lift

src/main/webapp/にhtmlファイルを作る。ファイル名はなんでもOK。 ただし、UTF-8で保存しないとなぜかjava.lang.OutOfMemoryErrorが出る。 <html xmlns="http://www.w3.org/1999/xhtml"> <body> <h1>日本語も使える</h1> <lift:snippet type="HelloWorld:howdy" /> </body> </html> HelloWorldクラスは、sandbox.lift.hellodarwin.snippetに次のように定義されている。 class H…

静的ページを作る - lift

テンプレートから作成したプロジェクトをベースにして変更を加えていくことにする。 src/main/webapp/ に.htmlを置けばhttp://localhost:8080/ファイル名でアクセスできる。 トップページのサイトマップに追加するにはbootstrap.liftweb.Bootクラスに val en…

eclipseでlift使う

http://liftweb.net/index.php/Using_eclipse_hotdeploy を見ながら進める。eclipse scala pluginを入れておく。 mvn eclipse:eclipseを実行しmavenプロジェクトをeclipseプロジェクト化する。次に mvn -Declipse.workspace=<path-to-eclipse-workspace> eclipse:add-maven-repoで、mave</path-to-eclipse-workspace>…

scalaのwebフレームワークliftを試す

scalaでwebやる場合、既存のjava用のwebフレームワークを使うのもダサいので、 scala用に作られたliftを使うのがよかろう。ということで試す。 公式サイトを読む限りRuby on RailsやseasideやErlywebなどの良いとこ取りなイメージ。 Maven入れる http://mave…