圣杯表单提交,在"params"生成空白条目



我有这个表单,当用户键入某些内容时,它将作为finalAnswer提交,如下所示:

        <g:form controller="animais" params="['rootNode': rootNode, 'finalAnswer': finalAnswer]">   
            <h3>${curQuestion} </h3>            
            <g:if test="${finished}">           
                <g:actionSubmit class="btn btn-primary" action="backToStart" value="Voltar" />
            </g:if>         
            <g:if test="${!finished}">
                <g:if test="${!showDivTip}">            
                    <g:textField name="finalAnswer" value="${finalAnswer}"/>
                    <g:actionSubmit class="btn btn-primary" action="submitFinalAnswer" value="OK" />                    
                </g:if>                             
                <g:if test="${showDivTip}">         
                    <g:textField name="tipToFinalAnswer" value="${tipText}"/>                   
                    <g:actionSubmit class="btn btn-primary" action="submitTipForAnswer" value="Finalizar" />                        
                </g:if>
            </g:if>
        </g:form>

问题是,即使内容是一个简单的字符串,finalAnswer也会作为一个2大小的字符串数组出现在params中。

当我打印params:时

[finalAnswer:[, leao marinho], rootNode:2, _action_submitFinalAnswer:OK, action:index, format:null, controller:animais]

params.finalAnswer:[, leao marinho] 的值

params.finalAnswer的类别类型:class [Ljava.lang.String;

如何将params.finalAnswer作为一个简单字符串检索?

试试这个

    <g:form controller="animais" params="['rootNode': rootNode]">   
        <h3>${curQuestion} </h3>            
        <g:if test="${finished}">           
            <g:actionSubmit class="btn btn-primary" action="backToStart" value="Voltar" />
        </g:if>         
        <g:if test="${!finished}">
            <g:if test="${!showDivTip}">            
                <g:textField name="finalAnswer" value="${params.finalAnswer}"/>
                <g:actionSubmit class="btn btn-primary" action="submitFinalAnswer" value="OK" />                    
            </g:if>                             
            <g:if test="${showDivTip}">         
                <g:textField name="tipToFinalAnswer" value="${params.tipText}"/>                   
                <g:actionSubmit class="btn btn-primary" action="submitTipForAnswer" value="Finalizar" />                        
            </g:if>
        </g:if>
    </g:form>

@quindimildev的回答不完全正确。更好的是使用隐藏字段:

 <g:form controller="animais">   
  <g:hiddenField name="rootNode" value="${rootNode}"/>
  <g:hiddenField name="finalAnswer" value="${finalAnswer}"/>
        <h3>${curQuestion} </h3>            
        <g:if test="${finished}">           
            <g:actionSubmit class="btn btn-primary" action="backToStart" value="Voltar" />
        </g:if>         
        <g:if test="${!finished}">
            <g:if test="${!showDivTip}">            
                <g:textField name="finalAnswer" value="${finalAnswer}"/>
                <g:actionSubmit class="btn btn-primary" action="submitFinalAnswer" value="OK" />                    
            </g:if>                             
            <g:if test="${showDivTip}">         
                <g:textField name="tipToFinalAnswer" value="${tipText}"/>                   
                <g:actionSubmit class="btn btn-primary" action="submitTipForAnswer" value="Finalizar" />                        
            </g:if>
        </g:if>
    </g:form>

所以你可以把它从参数中删除。真的,更清楚了。

最新更新