我的mvc监听器如何区分不同的按钮

lztngnrs  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(473)

这是我第一次尝试mvc设计模式,我试图弄清楚我的控制器类如何判断何时按下不同的按钮,以及如何将它传递给model

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();
}

我只能做一个动作。

p1iqtdky

p1iqtdky1#

您可以使用侦听器中的if cases来区分按钮等。

public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == btnGo){
        //perform action when btnGo clicked
    }
    if (e.getSource() == btnBack){
        //perform action when btnBack clicked
    }
}
kuarbcqp

kuarbcqp2#

你能给我们一些上下文方面的补充信息吗?例如,我使用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>

因此,给我们一些上下文,它是一个webapp,一个“桌面”应用程序?你用什么技术。。
最坏的情况是,您可以根据调用的“发起者”来确定方法分支,但实际上。。我不太喜欢这个。。。

相关问题