2015-03-31 57 views
0

我必须在Grails中编写更新或更改用户数据表单。这是我的形式:更新或更改Grails中的用户数据表格

<g:form class="form-signin" controller="VisitorSpace"> 
    <label for="login" class="sr-only">Login</label> 
    <g:textField id="login" class="form-control" name="login" placeholder="login" required="" autofocus=""/> 
    <label for="firstName" class="sr-only">Your name</label> 
    <g:textField id="firstName" class="form-control" name="firstName" placeholder="Your name" required="" type="text"/> 
    <label for="lastName" class="sr-only">Your lastname</label> 
    <g:textField id="lastName" class="form-control" name="lastName" placeholder="Your lastname" required="" type="text"/> 

    <label for="inputEmail" class="sr-only">e-mail</label> 
    <g:textField id="inputEmail" class="form-control" name="email" placeholder="e-mail" required="" autofocus="" data-translatable-string="Email address" type="email"/> 
    <label for="inputPassword" class="sr-only">Password</label> 
    <g:passwordField id="inputPassword" class="form-control" name="password" placeholder="Password" required="" data-translatable-string="Password"/> 

    <label for="confirmPassword" class="sr-only">Confirm password</label> 
    <g:passwordField id="confirmPassword" class="form-control" name="controlPassword" placeholder="Confirm password" required="" data-translatable-string="Password"/> 
    <g:actionSubmit value="Commit change" action="updateUserData" class="btn btn-lg btn-primary btn-block">Commit change</g:actionSubmit> 
</g:form> 

旧的数据必须在田地里表现出来,所以它必须从数据库发送到时刻视图形式将被载入。我知道,有可能调用所需的控制器方法来执行此操作,并且必须在加载视图表单之前或之后调用此方法。但如何做到这一点?

回答

1

value属性添加到输入字段元素中,并使用控制器所需的当前数据。这是你要求的吗?

<g:textField id="lastName" value="${objectInstance.lastName}" ... /> 
+0

可能是..但现在我想从控制器调用一个动作,将其结果粘贴到该值。例如:value =“$ {showEditableData()}”。 showEditableData()是来自控制器的一种方法。这个动作由String user = getPrincipal()。username组成。但是当我这样做,我得到一个错误:没有找到这样的签名方法 – pragmus 2015-04-02 17:57:38

+0

在我看来,有一个替代方法:查看与参数渲染。参数可能会取代方法调用。我会试试看。 – pragmus 2015-04-02 18:24:36