例如,如果我选择单选按钮 1 并按提交按钮,我想呼叫控制器 1,选择单选按钮 2,然后按按钮 2 呼叫控制器 2。
以下是我尝试过的方法。首先有两个控制器。
@RequestMapping(value="/ynto10", method=RequestMethod.POST)
public String ynto10(HttpServletRequest req, HttpServletResponse res) {
String[] columns = req.getParameterValues("chkValue");
System.out.println(columns.length);
analyticsService.ynTo10(columns);
return "redirect:/analytics/info/1";
}
@RequestMapping(value="/nulltoN", method=RequestMethod.POST)
public String nulltoN(HttpServletRequest req) {
String[] columns = req.getParameterValues("chkColnames");
analyticsService.nullToN(columns);
return "redirect:/analytics/info/1";
}
这是尝试根据单选按钮选择使用 ajax 调用控制器。
$('#convert').click(function() {
var chkVal = [];
$('input[name=chkColnames]:checked').each(function() {
chkVal = $(this).val();
});
if($('#ynTo10:selected')) {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/destiny/ynto10',
data: {
chkValue : chkVal
},
dataType: 'json',
success: alert('변환 OK'),
})
}else if($('#nullToN:selected')) {
$.ajax({
type: 'POST',
url: 'http://localhost:8080/destiny/nulltoN',
data: {
chkValue : chkVal
},
dataType: 'json',
success: alert('변환 OK'),
})
}
我想为名为 chkVal 的变量添加一个复选框。如果您能给我这部分,我将不胜感激。有好的一天。
您需要将数据推送到数组以获取所有选定的值
$('input[name=chkColnames]:checked').each(function() {
chkVal.push($(this).val());
});
其次,您无法直接从 AJAXED 页面重定向,
在 AJAX 调用的成功函数中使用 JS 重定向
success: function(data) {
window.location = "/analytics/info/1";
}
或者最好放弃 Ajax 并使用简单的 get 请求