我的 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" 确定方法分支,但实际上..这不是我过分喜欢的东西...