1

私は現在 spring mvc3 を使用していますが、コントローラーのほとんどが同じロジックを所有していることがわかりました。例:

ポストコントローラー:

package com.king.controller;

@Controller
@RequestMapping("/posts")
public class PostController {
    @Autowired
    private PostDao postDao;

    // GET /posts /posts.json
    @RequestMapping(value = { "" }, method = RequestMethod.GET)
    public String index(Model model) {
        model.addAttribute("posts", postDao.list());
        return "posts/index";
    }

    // GET /posts/1 GET /posts/1.json
    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public String show(@PathVariable int id, Model model) {
        Post post = postDao.query(id);
        if (post != null) {
            model.addAttribute("post", post);
            return "posts/show";
        } else
            throw new RuntimeException("not found");

    }

    // GET /posts/new
    @RequestMapping(value = "/new", method = RequestMethod.GET)
    public String newForm(Model model) {
        model.addAttribute(new Post());
        return "posts/new";
    }

    // GET /posts/1/edit
    @RequestMapping(value = "/{id}/edit", method = RequestMethod.GET)
    public String edit(@PathVariable int id, Model model) {
        Post post = postDao.query(id);
        if (post != null) {
            model.addAttribute(post);
            return "posts/edit";
        } else
            throw new RuntimeException("not found");
    }

    // POST /posts /posts.json
    @RequestMapping(value = "", method = RequestMethod.POST)
    public String create(@Valid Post post, BindingResult result) {
        if (!result.hasErrors()) {
            postDao.add(post);
            return "redirect:/posts";
        } else {
            return "posts/new";
        }
    }

    // PUT /posts/1 /posts/1.json
    @RequestMapping(value = "/{id}", method = RequestMethod.PUT)
    public String update(@PathVariable int id, @Valid Post post, BindingResult result, RedirectAttributes redirectAttrs) {
        if (!result.hasErrors()) {
            post.setId(id);
            postDao.update(post);
            return "redirect:/posts/" + id;
        } else {
            return "posts/edit";
        }
    }

    // DELETE /posts/1 /posts/1.json
    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
    public String destroy(@PathVariable int id, RedirectAttributes re) {
        Post p = new Post(id, "", "");
        postDao.delete(p);
        return "redirect:/posts";
    }
}

カード操作が必要な新しい単純なモデルを作成する場合、新しいコントローラー、手動でコピーして貼り付ける新しい dao を作成する必要があります。

それで、レールのようにコントローラーやdaoなどを生成できるツールを見つけたり作成したりできるのだろうか?

すぐに使用できるツールはありますか? そうでない場合は、作成できますが、この種のツールを作成する必要がある場合は、何か文字の置き換えを行う、つまり、コントローラーと dao のパブリック テンプレートを作成し、何かを置き換えるだけでよいと思いました。それに応じて、しかし、パッケージ/インポート/問題をどのように処理するか、およびどの言語が優れているか(JavaまたはRuby)が気になりますか?

ところで、私には play!framework を勧めないでください。私はそれが好きではありません。spring mvc を使いたいだけなので。したがって、このツールは、Spring 3 に基づくコントローラーと dao のみに焦点を当てます。

なにか提案を?

4

3 に答える 3

0

Grails は確かにこのタイプの機能をすぐに使用できるように提供していますが、Spring Roo もこれを行っていると思います。両方をチェックする価値があります。

于 2012-09-04T08:30:11.833 に答える
0

これもチェック。

http://www.myeclipseide.com/documentation/quickstarts/ME4STutorialScaffoldingMVC/scaffoldingarticle.html

これにより、ドメイン モデルの CRUD アプリケーション パターンを実装する、すぐに実行できる Spring MVC アプリケーションを作成する手順が説明されます。

免責事項:これは 30 日間の試用版です

于 2012-09-04T08:31:39.550 に答える