2014-10-22 62 views
3

我正在从PHP迁移到JavaSpring。我注意到Spring即使是很棒的框架,也会忽略其他平台上其他框架中捆绑的东西。我最想念的一点是能够使用专门的建造者来建造表格,而不用编写单行html是否有Java/Spring Web应用程序的表单生成器?

Let's take Symfony2 for example (click here for full article):

/** 
* Controller class 
*/ 
public function newAction(Request $request) 
{ 
    // create a task and give it some dummy data for this example 
    $task = new Task(); 
    $task->setTask('Write a blog post'); 
    $task->setDueDate(new \DateTime('tomorrow')); 

    $form = $this->createFormBuilder($task) 
     ->add('task', 'text') 
     ->add('dueDate', 'date') 
     ->add('save', 'submit', array('label' => 'Create Post')) 
     ->getForm(); 

    return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
     'form' => $form->createView(), 
    )); 
} 

有了这个代码,所有我需要做的就是调用form(其实形式的toString()方法,但适当的twig插件处理该)在我看来。 HTML生成并充满对飞:

{{ form(form) }} 

rendered form, image taken from symfony site

验证的实体(单场和复杂的验证)来实现,但你还可以将验证在其自身。

有没有什么办法可以在Spring中实现这个功能?

+0

嘿,我想知道同样的事情。你有没有找到类似symfony的表单组件的解决方案?顺便说一下(如果你不知道),如果你习惯了Java的话,有一个Twig for Java的端口叫做[jTwig](http://jtwig.org/)。 – tftd 2015-05-02 22:47:28

回答

0

有框架试图为您提供一个工具来轻松创建事物。这些问题往往是它越容易,它造成的混乱就越多。这与简单的项目无关,但使用代码生成工具对生产级软件通常是有风险的。

Spring确实提供了一个名为Roo的RAD(快速应用程序开发)工具,它可能也有助于创建前端。我不知道任何用于Java的流行表单构建器,并且考虑到可用的不同视图技术的数量,它们将与特定类型(JSF,Tapestry等)绑定。

+0

这真是一个耻辱,我曾经在甚至真正巨大的项目(> 100万行代码)上使用它们,并且显着加速了开发。那么你在创建表单时的做法是什么?将表单导出为部分或将它们放在页面模板中? – ex3v 2014-10-22 11:05:22

+0

嗯,我从来不需要参与一个需要这么多形式的项目,以至于我无法亲自去做。我猜如果我不得不使用数千种形式并且不关心可测试性或其他类似的事情,我会寻找一种自动化工具(或者更可能的问题是,为什么会有这么多的表单,并想到无需收集数据的方法用户输入)。 – Kayaman 2014-10-22 11:22:13

相关问题