使用Spring Boot和Thymeleaf的tl; dr,当用户单击特定行的第5列中的按钮时,如何在表单中返回表的第1列值?
嗨,您好!长时间听众,第一次来电.对于这个问题,我非常感谢你的帮助.
我正在使用Spring Boot和Thymeleaf编写服务器应用程序.服务器与许多设备交互.我正在创建一个网页,它将在表格(表格)中显示设备及其IP地址列表.表格的每一行都有关于设备的信息,“删除”按钮用于从列表中删除设备.单击该按钮时,表单应将设备的IP地址返回给基础Controller,以便Controller可以从(内部)设备列表中删除该设备.
我可以让它根本不返回任何内容,或者所有IP地址(作为一个用逗号分隔值的字符串),但我不能让它只返回点击按钮行上的地址.
我已经完成的搜索已经找到了为静态表做的方法,但不是动态生成的,也不是常规的“输入”类型输入,而不是按钮.没有特定于单击此按钮,从同一行的另一列返回此值.
我试图用相对纯粹的Java和HTML来做这件事,但如果它解决了这个问题,我不反对JavaScript的一些片段.我对JQuery一无所知…而且由于其他项目原因,JSP页面也不是一个选项.
HTML:
Device IP | Status | Model Name | Serial No. | Remove? | |
---|---|---|---|---|---|
N/A | N/A | N/A | N/A | Remove | IP Error |
我的最新(和最接近标记)尝试使用每行上的隐藏输入来返回值…但它返回所有行的值.
“devices”(类DeviceStatus)对象是标准数据对象的List,带有一堆字符串成员和get / set方法.它包含附加设备的信息.
“addForm”(类AddForm)对象是一个单个对象,其中包含字符串(“deviceIP”)和该字符串的get / set方法.
控制器GET方法:
@RequestMapping(value="/webservice/adddevice", method=RequestMethod.GET)
public String showForm(Model model, AddForm addForm) {
model.addAttribute("devices", getDevicesStatus());
addForm.loadPrefs(deviceController);
return "adddevice"; // the webpage is adddevice.html
}
和控制器POST方法:
@RequestMapping(value="/webservice/adddevice", method=RequestMethod.POST, params="action=remove")
public String removeDevice(@Valid AddForm addForm, BindingResult bindingResult) {
//addForm.removeDevice(deviceController);
return "redirect:/webservice/results";
}
现在POST方法没有做任何事情……直到我得到HTML表单工作,没有多大意义.