Java 数据表url中输入的动态值

Java 数据表url中输入的动态值,java,jquery,spring-mvc,datatables,thymeleaf,Java,Jquery,Spring Mvc,Datatables,Thymeleaf,我在一个模态表单中有一个datatable,我需要在服务器端动态加载它,我有一个捕获值的输入,需要通过javascript(或其他不同于从modelAttribute对象获取值的方法)发送它来加载表 这是数据表,我需要存储在#idCProp输入中的值 <table th:if="${entity.formulario == 'formPerson'}" class="table dataTable" dt:deferLoading="10" id="propDT" dt:reloadSel

我在一个模态表单中有一个datatable,我需要在服务器端动态加载它,我有一个捕获值的输入,需要通过javascript(或其他不同于从modelAttribute对象获取值的方法)发送它来加载表

这是数据表,我需要存储在
#idCProp
输入中的值

<table th:if="${entity.formulario == 'formPerson'}" class="table dataTable" dt:deferLoading="10" id="propDT" dt:reloadSelector="#reloadProponent"  dt:table="true"  dt:sortable="true" dt:displaylength="10" dt:dom='ftip' dt:url="@{/person/loadProponents/__${entity.id}__/ **VALUE FROM INPUT**}" dt:serverside="true">
<thead>
    <tr>
        <th dt:property="entity.id" dt:renderFunction="nameAndLastName">Persona</th>
        <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalPost">Cargo</th>
        <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalInstitution">Institución</th>
        <th dt:property="sendMethod.name" dt:sortable="false">M&eacute;todo de env&iacute;o</th>
        <th class="operations" dt:sortable="false" dt:property="id" dt:renderFunction="idToUrlProp"></th>
    </tr>
</thead>
</table>
<input type="hidden" id="idCProp"/>

人格面具
货物
学院
并购;环境与环境托多酒店;o
这就是控制器方法

@RequestMapping(value = "/person/loadProponents/{idPerson}/{idCandidature}", method = RequestMethod.GET)
    public @ResponseBody DatatablesResponse<Proposal> loadProponents(@PathVariable("idPerson") Long idPerson,@PathVariable("idCandidature") String idCandidature,
            @DatatablesParams DatatablesCriterias criterias, HttpServletRequest request) {
   //Do some stuff...
}
@RequestMapping(value=“/person/loadproperties/{idPerson}/{idcandidate}”,method=RequestMethod.GET)
public@ResponseBody datatableResponse loadPropositers(@PathVariable(“idPerson”)长idPerson,@PathVariable(“idCandidate”)字符串idCandidate,
@DataTableParams DatatablesCriterias准则,HttpServletRequest请求){
//做些事情。。。
}

我如何发送
idcandidate
变量?

我认为它使用的更好方法是请求
变量来执行

您的视图代码为:

<form id="searchForm">
    <input type="hidden" id="idCProp"/>
    <button class="btn btn-primary" type="button" 
       th:text="#{proposals.find}" 
       onclick="findProposals();"></button>

</form>
<table th:if="${entity.formulario == 'formPerson'}" class="table dataTable" dt:deferLoading="10" id="propDT" dt:reloadSelector="#reloadProponent"  dt:table="true"  dt:sortable="true" dt:displaylength="10" dt:dom='ftip' dt:url="@{/person/loadProponents/__${entity.id}__}" dt:serverside="true">
<thead>
<tr>
    <th dt:property="entity.id" dt:renderFunction="nameAndLastName">Persona</th>
    <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalPost">Cargo</th>
    <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalInstitution">Institución</th>
    <th dt:property="sendMethod.name" dt:sortable="false">M&eacute;todo de env&iacute;o</th>
    <th class="operations" dt:sortable="false" dt:property="id" dt:renderFunction="idToUrlProp"></th>
</tr>
</thead>
</table>


<script th:inline="javascript">
    function findProposals() {
        oTable_propDT.columns(2).search($("#idCProp").val());
        ... // more parameters if you need
        oTable_propDT.columns(n).search($("#yoursearchparameterfrominput").val());
        oTable_propDT.draw();
    }
</script>

人格面具
货物
学院
并购;环境与环境托多酒店;o
函数findProposals(){
oTable_propDT.columns(2).search($(“#idCProp”).val());
…//如果需要,请提供更多参数
oTable_propDT.columns(n).search($(“#yoursearchparameterfrominput”).val();
可旋转的绘制();
}
在控制器中,您已经拥有所需的一切:

@RequestMapping(value = "/person/loadProponents/{idPerson}", method = RequestMethod.GET)
public @ResponseBody DatatablesResponse<Proposal> loadProponents(@PathVariable("idPerson") Long idPerson, HttpServletRequest request) {
   DatatablesCriterias criterias = DatatablesCriterias.getFromRequest(request);
   DataSet<Proposal> dataset = proposalService.getProposalsDataset(criterias);
   return DatatablesResponse.build(dataset, criterias);
}
@RequestMapping(value=“/person/loadproperties/{idPerson}”,method=RequestMethod.GET)
public@ResponseBody datatableresponse loaduppositers(@PathVariable(“idPerson”)Long idPerson,HttpServletRequest){
DatatablesCriterias-criterias=DatatablesCriterias.getFromRequest(请求);
DataSet DataSet=proposalService.GetProposalDataSet(标准);
返回DataTableResponse.build(数据集、标准);
}

最后,您只需要编写
proposalService#GetProposalDataSet(DatatablesCriterias criterias)
方法来构建
数据集
,我认为这没什么特别的。

我认为它使用的更好方法是
请求变量来实现它

您的视图代码为:

<form id="searchForm">
    <input type="hidden" id="idCProp"/>
    <button class="btn btn-primary" type="button" 
       th:text="#{proposals.find}" 
       onclick="findProposals();"></button>

</form>
<table th:if="${entity.formulario == 'formPerson'}" class="table dataTable" dt:deferLoading="10" id="propDT" dt:reloadSelector="#reloadProponent"  dt:table="true"  dt:sortable="true" dt:displaylength="10" dt:dom='ftip' dt:url="@{/person/loadProponents/__${entity.id}__}" dt:serverside="true">
<thead>
<tr>
    <th dt:property="entity.id" dt:renderFunction="nameAndLastName">Persona</th>
    <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalPost">Cargo</th>
    <th dt:property="entity.id" dt:sortable="false" dt:renderFunction="getProposalInstitution">Institución</th>
    <th dt:property="sendMethod.name" dt:sortable="false">M&eacute;todo de env&iacute;o</th>
    <th class="operations" dt:sortable="false" dt:property="id" dt:renderFunction="idToUrlProp"></th>
</tr>
</thead>
</table>


<script th:inline="javascript">
    function findProposals() {
        oTable_propDT.columns(2).search($("#idCProp").val());
        ... // more parameters if you need
        oTable_propDT.columns(n).search($("#yoursearchparameterfrominput").val());
        oTable_propDT.draw();
    }
</script>

人格面具
货物
学院
并购;环境与环境托多酒店;o
函数findProposals(){
oTable_propDT.columns(2).search($(“#idCProp”).val());
…//如果需要,请提供更多参数
oTable_propDT.columns(n).search($(“#yoursearchparameterfrominput”).val();
可旋转的绘制();
}
在控制器中,您已经拥有所需的一切:

@RequestMapping(value = "/person/loadProponents/{idPerson}", method = RequestMethod.GET)
public @ResponseBody DatatablesResponse<Proposal> loadProponents(@PathVariable("idPerson") Long idPerson, HttpServletRequest request) {
   DatatablesCriterias criterias = DatatablesCriterias.getFromRequest(request);
   DataSet<Proposal> dataset = proposalService.getProposalsDataset(criterias);
   return DatatablesResponse.build(dataset, criterias);
}
@RequestMapping(value=“/person/loadproperties/{idPerson}”,method=RequestMethod.GET)
public@ResponseBody datatableresponse loaduppositers(@PathVariable(“idPerson”)Long idPerson,HttpServletRequest){
DatatablesCriterias-criterias=DatatablesCriterias.getFromRequest(请求);
DataSet DataSet=proposalService.GetProposalDataSet(标准);
返回DataTableResponse.build(数据集、标准);
}

最后,您只需要编写
proposalService#GetProposalDataSet(DatatablesCriterias criterias)
方法来构建
Dataset
,我认为这没什么特别的。

也许@tduchateau可以帮助您…您尝试过吗?也许@tduchateau可以帮助您…您尝试过吗?