2011年1月15日土曜日

groovyとApache ClickでFileFieldを使用してアップロードする

groovyとApache ClickでFileFieldを使用してアップロードするには、以下のコードを実行します。

1.ページクラス
UploadTest.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*
import org.apache.click.control.*

class UploadTest extends Page
{
def form = new Form("form")
def attachment = new FileField("attachment", "添付", true)
public UploadTest()
{
form.add(attachment)
form.add(new Submit("ok", "OK", this, "onOkClick"))
addControl(form)
}
def onOkClick()
{
if( form.isValid() ){
if( attachment.getFileItem() != null ){
// アップロードされたファイルを保存
def filename = "c:\\share\\" + attachment.getName()
attachment.getFileItem().write(new File(filename))
addModel("filename", filename)
}
}
return true
}
}

2.HTMLページ
upload-test.htm
<html>
<head><title>upload test</title></head>
$headElements
<body>
#if ($filename)
$filenameとして保存しました。
#else
アップロードテスト<br />
$form
#end
$jsElements
</body>
</html>

ブラウザから以下のURLにアクセスします。
http://localhost:8080/(warの名前)/upload-test.htm

出力画面


動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

関連情報
ビルドの仕方などは「groovyとApache ClickでHello Worldを作成する 」を参照
※click-extras-2.2.0.jarもクラスパスに入れる
http://groovyarekore.blogspot.com/2010/11/groovyapache-clickhello-world.html

0 件のコメント:

コメントを投稿