注解:  CRUD——Create,Retrieve, Update, Delete

文件结构

《Play for Java》学习笔记(二)基本的CRUD应用

一、添加控制器(controller和action)——/app/controllers/Products.java

package controllers;
import play.mvc.Controller;
import play.mvc.Result;
public class Products extends Controller {
    public static Result list() {     //列出所有的产品
        return TODO;
    }
    public static Result newProduct() {   //显示一个空的产品Form
        return TODO;
    }
    public static Result details(String ean) {   //显示一个编辑产品的Form
        return TODO;
    }
    public static Result save() {    //保存产品资料
        return TODO;
    }
}

说明:  controllers的action方法必须满足以下三个条件:

  • 必须是public
  • 必须是static
  • 返回类型必须是Result和Result的子类

完整代码为

package controllers;

import models.Product;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import java.util.ArrayList;
import java.util.List;

import views.html.*;

public class Products extends Controller {
    //constant for Form
    private static final Form<Product> productForm = Form.form(Product.class);
    
    public static Result list(){
        List<Product> products = Product.findAll();
        return ok(list.render(products));
    }
    
    public static Result newProduct(){
        return ok(details.render(productForm));
    }
    
    public static Result details(String ean){
        final Product product = Product.findByEan(ean);
        if(product == null){
            return notFound(String.format("Product %s does not exist.", ean));            
        }
        
        Form<Product> filledForm = productForm.fill(product);
        return ok(details.render(filledForm));
    }
    
    public static Result save(){
        Form<Product> boundForm = productForm.bindFromRequest();
        if(boundForm.hasErrors()){
            flash("error","Please correct the form below.");
            return badRequest(details.render(boundForm));
        }
        
        Product product = boundForm.get();
        product.save();
        flash("success",String.format("Successfully added product %s", product));
        return redirect(routes.Products.list());
    }    
    
    public static Result delete(String ean){
        final Product product = Product.findByEan(ean);
        if(product == null){
            return notFound(String.format("Product %s does not exist.", ean));
        }
        
        Product.remove(product);
        return redirect(routes.Products.list());
    }
}
Java Code

相关文章:

  • 2021-12-15
  • 2021-12-18
  • 2021-08-06
  • 2021-10-28
  • 2021-10-15
  • 2021-04-01
  • 2021-12-01
猜你喜欢
  • 2021-09-14
  • 2021-07-15
  • 2021-10-13
  • 2021-12-13
  • 2021-05-24
  • 2021-05-21
  • 2021-09-17
相关资源
相似解决方案