我想在Swing的新项目中使用MVC。
但我有一些问题。
在我的MainView
我有一个输入表单和一个提交按钮。
当我点击提交时,我的MainController.setUrl(Value)
被调用。
然后我必须验证数据。
我必须在MainController
验证此数据的位置?在我的MainModel
?
或者在我的MainController
中,我调用MainModel.isValidUrl(Value)
等方法?
如果数据错误,我想向用户显示一个对话框。那么如何在视图中调用方法来显示此框?
答案 0 :(得分:1)
您应该在MainModel.isValid
中拨打MainController
,然后显示对话框或保留表单(根据是否有效)。 MainModel
应该负责自己的验证。
当您从Controller
实例化View
时,只需将View
的实例传递给您的Controller
。
伪代码将是这样的:
...
// In your view
private void initTabPane(){
AbstractModel socialModel = new SocialModel();
// Pass the View
AbstractController socialController = new MainController(socialModel, this);
...
}
// In your controller
private AbstractView view;
public MainController(AbstractModel model, AbstracView view) {
...
this.view = view;
}
public Validate() {
if (!model.isValid) {
view.showError();
}
else {
// do your stuff with the valid model
}
}