gpt4 book ai didi

grails - 单击按钮时, Controller 中的params值始终为null

转载 作者:行者123 更新时间:2023-12-02 15:56:44 30 4
gpt4 key购买 nike

在我的应用程序中,我具有搜索按钮,并且基于搜索条件,我必须搜索数据。我使用了一些隐藏变量来存储数据。

我的.gsp页面如下所示:

<g:form id="job" name="job" method="POST">
<div>
<input type="hidden" id="country" name="country" value="${country}"/>
<input type="hidden" id="paginationFlag" name="paginationFlag" value="${paginationFlag}"/>
<!-- There are other components like text field, select box etc -->
<g:actionSubmit id="Search" value="Search" formmethod="post" action="findJob"/>
</div>
</g:form>

我各自的 Controller 方法如下所示:
def  findJob(){
def country
def paginationFlag

if(params?.country){
country = params?.country
}else{
country = 'USA'
}

if(params?.paginationFlag){
paginationFlag = params?.paginationFlag
}else{
paginationFlag = 'false'
}

withFormat{
html{
List<Applicant> searchList //get data from database.
// other business logic
render(view : "jobList",model:[paginationFlag: paginationFlag, country:country])
}

json{
// some business logic
def candidateList // value for this candidateList is acquired from database
def json = ['jsn': candidateList]
render json as JSON
}
}

当我单击搜索按钮并调试代码时,首先,我的控件转到controller-> findJob()方法并在html部分内执行代码。
其次,它进入gsp页面(查看页面)并设置值。第三,它再次进入 Controller 并执行json部分中的代码。

在 Controller 的第一个条目上,paginationFlag的值和param中的country都为空。因此,它将分别设置值“false”和“USA”。但是,当控制第二次再次进入 Controller 时,param.paginationFlag和params.country的值再次为空。他们不应该有分配的值吗?

为什么会这样呢?我应该怎么做才能第二次在参数中获得country和paginationFlag的值(value)?有人可以解释一下吗?非常感谢您的提前。

最佳答案

问题是您使用的是常规HTML input标记,而不是Grails g:hiddenField标记。试试这个:

<g:form id="job" name="job" method="POST">
<div>
<g:hiddenField name="country" value="${country}"/>
<g:hiddenField name="paginationFlag" value="${paginationFlag}"/>
<!-- There are other components like text field, select box etc -->
<g:actionSubmit id="Search" value="Search" formmethod="post" action="findJob"/>
</div>
</g:form>

小费

您还可以简单地分配参数:
def country = params.country ?: 'USA'
def paginationFlag = params.paginationFlag ?: 'false'

我不知道 paginationFlag的来源,但知道 boolean是有效的。

关于grails - 单击<g:actionSubmit>按钮时, Controller 中的params值始终为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33403072/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com