Reputation: 534
I have this form and when the user types something this is submitted as finalAnswer
, as you can see below:
<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>
The problem is that finalAnswer
come to params
as a 2-sized array of strings, even if the content is a simple string.
When I printed params
:
[finalAnswer:[, leao marinho], rootNode:2, _action_submitFinalAnswer:OK, action:index, format:null, controller:animais]
Value of params.finalAnswer
: [, leao marinho]
ClassType of params.finalAnswer
: class [Ljava.lang.String;
How can I retrieve params.finalAnswer
as a simple string?
Upvotes: 0
Views: 363
Reputation: 1217
Answer by @quindimildev not fully right. Better will be use hidden field:
<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>
So you can remove it from params. Really, it more clear.
Upvotes: 1
Reputation: 1280
Try this
<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>
Upvotes: 1