如何将请求绑定到Grails中的Domain类

时间:2013-07-08 04:00:49

标签: grails groovy

我不喜欢命令对象,因为有很多重复的代码..

我想在vraptor中做这样的事情。

这是Vraptor代码的一个java框架

 <form action="<c:url value='/produtos/adiciona'/>">
Nome:             <input type="text" name="produto.nome" /><br/>
Descrição:    <input type="text" name="produto.descricao" /><br/>
Preço:            <input type="text" name="produto.preco" /><br/>
<input type="submit" value="Salvar" />
</form>

@Resource
public class ProdutosController {
//...
public void adiciona(Produto produto) {
    dao.adiciona(produto);
}
}

来源http://vraptor.caelum.com.br/en/docs/ten-minute-guide/

在grails中不起作用为什么???现在有人关于这个

class User {
String login
String password
}

<g:form name="form" url="[controller:'user',action:'login']">
    Login <input type="text" name="user.login"/><br/>
    Senha <input type="password" name="user.password"/><br/>
    <input type="submit" value="go"/>
</g:form>

def login(User user){
render("result ${user.login} and ${user.password}")
}

响应为null“result null and null”

1 个答案:

答案 0 :(得分:0)

你可以用grails来做,比如:

void adiciona() {
    Produto produto = new Produto(params.produto) // 'produto.' is a prefix at this case
    dao.adiciona(produto);
}

请参阅文档:http://grails.org/doc/latest/guide/theWebLayer.html#dataBinding

是的,我应该警告你,这种方式可能会导致一些安全问题,因为用户可以更新任何字段,甚至是内部字段,你不想从用户输入中填充。