【发布时间】:2014-03-08 08:44:55
【问题描述】:
我正在开发一个 Spring MVC 控制器项目。
- 第一个按钮是
INSERT。当我单击 INSERT 按钮时,我会在 INSERT 按钮下方显示三个文本框。第一个文本框是datacenter,第二个文本框是node,第三个文本框是data。 - 第二个按钮是
UPDATE。当我点击 UPDATE 按钮时,我会在 UPDATE 按钮下方的三个文本框中显示相同的内容。 - 第三个按钮是
DELETE。当我点击 DELETE 按钮时,我只在 DELETE 按钮下方显示一个文本框。在这一文本框中将是node。 - 第四个按钮是
PROCESS。当我单击 PROCESS 按钮时,我会在 PROCESS 按钮下方显示四个文本框。在这第一个文本框将是datacenter,第二个文本框将是node,第三个文本框将是data,第四个文本框将是conf
最后会有一个提交按钮,我将按下它。
这是我的jsfiddle,上面有我所说的一切。
问题陈述:-
现在我需要做的是,假设我首先单击Insert 按钮,它将在插入按钮下方提供三个文本框,然后在这三个文本框中键入一些值后,我将单击@987654335 @ 按钮,它应该将所有这三个文本框值以及我所做的操作(意味着它是 INSERT 或 UPDATE 或 DELETE 或 PROCESS)传递给我的控制器方法testOperations。因此,对于这种情况,如果我在数据中心输入 dc1,在节点输入 hello,在数据输入 world,那么它应该将所有这三个值传递给我的控制器方法,但它也应该将 conf 值传递为 null bcoz Insert 按钮没有这个文本框,所以当我们按下提交按钮时,它应该将 conf 值作为 null 传递给控制器方法。
类似地,如果我点击删除按钮,那么它只会在删除按钮下方显示一个文本框,一旦我点击提交按钮,它应该将删除值作为操作传递,数据中心值应该为空,节点值作为实际我们在框中输入的值,data 值也应该为 null,conf 值也应该为 null.. 其他人也是如此。
以下是我在控制器代码中的方法-
@RequestMapping(value = "testOperation", method = RequestMethod.GET)
public Map<String, String> testOperation() {
final Map<String, String> model = new LinkedHashMap<String, String>();
return model;
}
@RequestMapping(value = "testOperation", method = RequestMethod.POST)
public Map<String, String> testOperations(@RequestParam String action,
@RequestParam String datacenter,
@RequestParam String node,
@RequestParam String data,
@RequestParam String conf) {
final Map<String, String> model = new LinkedHashMap<String, String>();
System.out.println(action);
System.out.println(datacenter);
System.out.println(node);
System.out.println(data);
System.out.println(conf);
return model;
}
但不知何故,每当我在输入一些值后按下提交按钮时,它都会给我一个异常请求异常。我知道原因吗?因为假设Insert 在这三个文本框中输入值后,我按下了提交按钮,然后未设置 conf 值,我的控制器方法采用 conf 参数,这就是它抛出异常的原因.. 并解决这个问题,我可以删除 conf 参数,但是对于 Process 情况,我需要它..
那么有什么办法,我可以将那些不需要某些按钮的文本框传递给控制器以避免这个问题吗?
【问题讨论】:
标签: java javascript jquery html jsp