在控制器中找不到 Grails 输入字段参数
Grails input field param not found in controller
我正在尝试将一些值从 Grails 的视图传递到控制器。这是我尝试执行此操作的代码:
<g:form controller="renter" action="processpayment">
<div style="margin:0 auto;width:100%">
<input type="checkbox" id="toggle"/>
<label for="toggle">Toggle</label>
<label for="allInputAmount">All Input Amount</label>
<g:textField name="allInputAmount" value="[=10=]" type="number"/>
<label for="difference">Difference</label>
<input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/>
<label for="calculatedAmount">Calculated Amount</label>
<input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/>
<hr/>
</div>
<div style="margin:0 auto;width:100%;clear:both">
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("A")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("B")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("C")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("D")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<g:actionSubmit value="submit" controller="renter" action="processpayment"/>
</div>
</g:form>
除其他外,重要的主要部分是div:
<div style="margin:0 auto;width:100%">
<input type="checkbox" id="toggle"/>
<label for="toggle">Toggle</label>
<label for="allInputAmount">All Input Amount</label>
<g:textField name="allInputAmount" value="[=11=]" type="number"/>
<label for="difference">Difference</label>
<input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/>
<label for="calculatedAmount">Calculated Amount</label>
<input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/>
<hr/>
</div>
在这里我们可以看到一些隐藏字段(difference1 和 calculatedAmount)
奇怪的是,当我提交表单时,在控制器的参数中找不到字段 difference 和 calculatedAmount。这就是为什么我必须创建一个新的隐藏字段,名称为 difference1 和 calculatedAmount1
我想知道为什么,到处都找不到解决方案。我正在使用 grails 2.3.7.
我认为禁用字段不应随请求一起提交。也许您真正想要的是只读而不是禁用。
我正在尝试将一些值从 Grails 的视图传递到控制器。这是我尝试执行此操作的代码:
<g:form controller="renter" action="processpayment">
<div style="margin:0 auto;width:100%">
<input type="checkbox" id="toggle"/>
<label for="toggle">Toggle</label>
<label for="allInputAmount">All Input Amount</label>
<g:textField name="allInputAmount" value="[=10=]" type="number"/>
<label for="difference">Difference</label>
<input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/>
<label for="calculatedAmount">Calculated Amount</label>
<input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/>
<hr/>
</div>
<div style="margin:0 auto;width:100%;clear:both">
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("A")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("B")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("C")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<div style="width:25%;float:left">
<g:each var="renter" in="${renters}">
<g:if test="${renter.name.startsWith("D")}">
<g:checkBox class="checkbox" name="${renter.name}" value="${false}"
checked="false">${renter.name}</g:checkBox>
<label for="${renter.name}">${renter.name}</label>
<br/>
</g:if>
</g:each>
</div>
<g:actionSubmit value="submit" controller="renter" action="processpayment"/>
</div>
</g:form>
除其他外,重要的主要部分是div:
<div style="margin:0 auto;width:100%">
<input type="checkbox" id="toggle"/>
<label for="toggle">Toggle</label>
<label for="allInputAmount">All Input Amount</label>
<g:textField name="allInputAmount" value="[=11=]" type="number"/>
<label for="difference">Difference</label>
<input id="difference1" name="difference1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="difference" type="number" value="${calculatedAmount}" disabled="true"/>
<label for="calculatedAmount">Calculated Amount</label>
<input name="calculatedAmount1" type="hidden" value="${calculatedAmount}"/>
<g:textField name="calculatedAmount" value="${calculatedAmount}" type="text" disabled="true"/>
<hr/>
</div>
在这里我们可以看到一些隐藏字段(difference1 和 calculatedAmount)
奇怪的是,当我提交表单时,在控制器的参数中找不到字段 difference 和 calculatedAmount。这就是为什么我必须创建一个新的隐藏字段,名称为 difference1 和 calculatedAmount1
我想知道为什么,到处都找不到解决方案。我正在使用 grails 2.3.7.
我认为禁用字段不应随请求一起提交。也许您真正想要的是只读而不是禁用。