String myname = asString("myname");
String mail = asString("mail");
int age = asInteger("age");フォームから送られた値を取得します。まだindex.jspは作ってませんが、myname, mail, ageと、エンティティクラスのプロパティと同じ名前でフォームのフィールド類が用意されている、という前提でコードを書いておきましょう。MyData mydata = new MyData();取得した変数を元に、MyDataインスタンスを作ります。これは単純ですね。newしてSetterメソッドを呼び出していくだけです。これで保存するエンティティのインスタンスは用意できました。
mydata.setMyname(myname);
mydata.setMail(mail);
mydata.setAge(age);
Datastore.put(mydata);これが、エンティティを保存する処理です。Datastoreクラスのputというメソッドを呼び出すだけ! このDatastoreクラスは、GAEの標準ライブラリではなく、Slim3に用意されているクラスです(GAEのデータストアクラスはDataStore、「S」が大文字です)。
List<MyData> mydatas = Datastore.query(MyDataMeta.get()).asList();残る「エンティティの取得」についてです。これは、上の1文だけで行っています。Datastoreクラスの「query」というメソッドを呼び出し、その返値の「asList」を呼び出していますね。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
package com.tuyano.libro.myslim3app.controller;
import java.util.List;
import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;
import org.slim3.datastore.Datastore;
import com.tuyano.libro.myslim3app.meta.MyDataMeta;
import com.tuyano.libro.myslim3app.model.MyData;
public class IndexController extends Controller {
@Override
public Navigation run() throws Exception {
String msg = "データの入力";
if (isPost()){
String myname = asString("myname");
String mail = asString("mail");
int age = asInteger("age");
MyData mydata = new MyData();
mydata.setMyname(myname);
mydata.setMail(mail);
mydata.setAge(age);
Datastore.put(mydata);
}
List<MyData> mydatas = Datastore.query(MyDataMeta.get()).asList();
request.setAttribute("msg", msg);
request.setAttribute("mydatas", mydatas);
return forward("index.jsp");
}
}
| << 前へ | 次へ >> |