gpt4 book ai didi

java - Spring MVC : Receive radio button values

转载 作者:行者123 更新时间:2023-11-30 06:25:26 25 4
gpt4 key购买 nike

我需要在我的 Controller 上接收未知数量的单选按钮值。

单选按钮已生成并且可能会有所不同...所以我需要一种方法来接收与用户发送的一样多的按钮。我怎样才能做到这一点?

查看(使用速度):

...
#foreach( $f in $model.fields )
<input type="radio" name="rd_$f.name" value="S" checked="checked"/> S
<input type="radio" name="rd_$f.name" value="C" /> C
#end
...

这将生成 X 个单选按钮集...我需要在我的 Controller 上接收它:

@RequestMapping(value = "/{e}/{id1}/{id2}", method = RequestMethod.POST)
public ModelAndView salvar(@PathVariable(value = "e") String e,
@PathVariable(value = "id1") Long id1,
@PathVariable(value = "id2") Long id2,
//MY RADIO BUTTONS ARRAY HERE!
) {

...

}

更新:

生成的 html 是这样的:

...
<input type="radio" name="rd_1" value="S" checked="checked"/> S
<input type="radio" name="rd_1" value="C" /> C
...
<input type="radio" name="rd_2" value="S" checked="checked"/> S
<input type="radio" name="rd_2" value="C" /> C
...
<input type="radio" name="rd_n" value="S" checked="checked"/> S
<input type="radio" name="rd_n" value="C" /> C
...

所以我不能只绑定(bind)到 Controller 上的 [],对吗?

最佳答案

您可以使用 @RequestParam(value="radio_name") String[] radioCheckedValues 作为 spring Controller 中的另一个属性进行绑定(bind)。

编辑服务器知道来自客户端的内容的唯一方法是使用名称。您可以使用 request.getParameterNames

伪代码...

List<String> values = new ArrayList();
Enumeration<String> enumeration = req.getParameterNames();
while (enumeration.hasMoreElements()) {
String parameterName = (String) enumeration.nextElement();
if(parameterName.startsWith("rd_")) {
values.add(req.getParameter(parameterName));
}
}

关于java - Spring MVC : Receive radio button values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572149/

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