我的 MVC 侦听器如何区分不同的按钮
How can my MVC listener distiguish between different buttons
这是我第一次尝试 MVC 设计模式,我正在尝试弄清楚我的控制器 class 如何判断何时按下不同的按钮,以及它如何传递它建模
public void addController(ActionListener controller){
System.out.println("View : adding controller");
btnGo.addActionListener(controller);
btnBack.addActionListener(controller);
}
这就是我将它发送到控制器的方式:
public void actionPerformed(java.awt.event.ActionEvent e){
System.out.println("Controller: acting on Model");
model.actionGo();
}
我只能执行一项操作。
您可以在侦听器中使用 if 条件来区分按钮等。
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnGo){
//perform action when btnGo clicked
}
if (e.getSource() == btnBack){
//perform action when btnBack clicked
}
}
你能给我们一些额外的上下文信息吗?
例如我使用 spring 并且我可以这样做:
@RequestMapping(value = "/updateAcerAccount", method = RequestMethod.POST)
public String updateAcerUser(@ModelAttribute("userModel") UserViewBean bean, @RequestParam(required = false) String submitType, HttpServletRequest request, Model model) {
if (submitType != null && "extend".equals(submitType))
{
// do something on extend
return "targetPage";
}
else {
//dosomething else on submit
return "targetPage2";
}
}
submittype 与 html 页面中的这两个按钮相关联..
<button type="submit" class="btn btn-danger" name="submitType" id="saveUser" value="extend">Resend Link</button>
<button type="submit" class="btn btn-success" name="submitType" id="saveUser" value="submit">Submit Decision</button>
因此给我们一些上下文,它是一个网络应用程序,一个 "desktop" 应用程序?你使用什么技术? ..
最坏的情况下,您可以根据调用的 "originator" 确定方法分支,但实际上..这不是我过分喜欢的东西...
这是我第一次尝试 MVC 设计模式,我正在尝试弄清楚我的控制器 class 如何判断何时按下不同的按钮,以及它如何传递它建模
public void addController(ActionListener controller){
System.out.println("View : adding controller");
btnGo.addActionListener(controller);
btnBack.addActionListener(controller);
}
这就是我将它发送到控制器的方式:
public void actionPerformed(java.awt.event.ActionEvent e){
System.out.println("Controller: acting on Model");
model.actionGo();
}
我只能执行一项操作。
您可以在侦听器中使用 if 条件来区分按钮等。
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnGo){
//perform action when btnGo clicked
}
if (e.getSource() == btnBack){
//perform action when btnBack clicked
}
}
你能给我们一些额外的上下文信息吗? 例如我使用 spring 并且我可以这样做:
@RequestMapping(value = "/updateAcerAccount", method = RequestMethod.POST)
public String updateAcerUser(@ModelAttribute("userModel") UserViewBean bean, @RequestParam(required = false) String submitType, HttpServletRequest request, Model model) {
if (submitType != null && "extend".equals(submitType))
{
// do something on extend
return "targetPage";
}
else {
//dosomething else on submit
return "targetPage2";
}
}
submittype 与 html 页面中的这两个按钮相关联..
<button type="submit" class="btn btn-danger" name="submitType" id="saveUser" value="extend">Resend Link</button>
<button type="submit" class="btn btn-success" name="submitType" id="saveUser" value="submit">Submit Decision</button>
因此给我们一些上下文,它是一个网络应用程序,一个 "desktop" 应用程序?你使用什么技术? ..
最坏的情况下,您可以根据调用的 "originator" 确定方法分支,但实际上..这不是我过分喜欢的东西...