2014-10-22 88 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

相關問題