Tag: model view controller

Struts MVC架构中的混乱

我正在研究Struts2 in Action并且知道Struts2中的Controller是FilterDispatcher而Model是Action。 但之前我知道Action和FilterDispatcher都是Controller,而Struts不提供对模型层的支持。 上面哪一个是错的?

使用Swing实现Java SE MVC

我使用PropertyChageSupport和PropertyChageListener为Swing实现了Java SE的MVC模式。 实现的MVC的图如下。 在View的实现中,我在Controller的帮助下进行了Model属性更改。 View包含以下代码为Ok按钮。 btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { modelController.setNumber(Integer.parseInt(numberField .getText())); modelController.setName(nameField.getText()); } }); 完整的代码可以在SwingMVC中找到。 现在,我的问题是, 我btnOk在View为btnOk编写上面的代码,或者我应该在Controller中的方法中编写它,以便在View ,我将会这样做 btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { modelController.btnOkActionPerformed(); } }); 以上两个实现中,哪个是实现MVC的首选方式?

在JavaFX中使用ObservableList是否违反模型 – 视图 – 控制器分离?

我正在尝试研究JavaFX,因为我想将它用作我程序的GUI。 我的问题基本上是概念性的: 到目前为止,我的程序主要是MVC模式的“模型”部分; 也就是说,我的几乎所有代码都是类的意义上的抽象的OO表示,所有代码都是逻辑代码。 由于我不想成为我的程序的唯一用户,我想添加MVC的“视图”部分,以便人们可以轻松地使用和操作我的程序的“模型”部分。 为此,我想使用JavaFX。 在我的“Model”类中,我显然使用了Java Collections API中的各种Lists,Maps和其他类。 为了让我的程序的用户操作这些底层列表和地图,我想在JavaFX中使用Observable(List / Map)接口。 澄清情况的一个具体例子: 假设我有一个MachineMonitor类,每3分钟检查一次机器的某些属性,例如连接是否仍然良好,齿轮转速等等。如果满足某些不等式(比如说速度的话)齿轮下降到1转/秒的速度) MachineMonitor触发RestartMachineEvent。 目前我使用ArrayList < MachineMonitor >来跟踪所有单独的MachineMonitor 。 现在扩展到MVC的“视图”部分,我希望用户能够操作显示MachineMonitor列表的TableView,以便他们可以创建和删除新的MachineMonitor来监视各种机器。 这样我就可以跟踪我的程序用户想要做什么(比如,为机器#5创建一个MachineMonitor来检查齿轮的转/秒是否低于0.5)我使用ObservableList < MachineMonitor >作为TableView的基础List。 链接程序的“模型”和“视图”的最简单方法就是将“模型”类更改为具有ObservableList < MachineMonitor >而不是ArrayList < MachineMonitor >但是(转到问题的主题)我觉得这非常混乱,因为它混合了“模型”和“查看”代码。 一种天真的方法是为TableView使用ObservableList < MachineMonitor >并保留我的ArrayList < MachineMonitor >的使用。 但是,根据JavaFX规范,对ObservableList < MachineMonitor >所做的更改不会影响基础List。 鉴于此,是解决这个难题的最佳方法是为ObservableList < MachineMonitor >创建一个ChangeListener, 它将对ObservableList < MachineMonitor >所做的更改“传播”到底层的“Model”ArrayList < MachineMonitor >? 也许把它放在一个名为MachineMonitorController的类中? […]

什么是Spring MVC控制器方法的有效返回类型?

我在Spring MVC上没有太多经验,我有以下关于控制器方法可以返回的valids返回类型的内容 。 所以我知道用户生成一个由DispatcherServlet接收和处理的HttpRequest ,它将此请求分派给特定的控制器类。 控制器类是这样的: @Controller public class AccountController { @RequestMapping(“/showAccount”) public String show(@RequestParam(“entityId”) long id, Model model) { … } ………………………………… ………………………………… ………………………………… } 所以我知道每个方法处理一个特定的请求,并且处理的请求由@RequestMapping注释指定。 我也知道该方法返回一个String对象,该对象是逻辑视图名称 (然后由视图解析器解析以呈现视图) 所以,在这个阶段,我认为控制器类的方法只返回String对象。 但我不确定。 也许像这样的方法也可以返回一些不同类型的对象?

如何在JavaFx 2.0中访问Controller类?

最近我用JavaFx2.0编写了一个软件,但我遇到了一个大问题,那就是 – 如何访问Controller类? 对于具有相同类类型的每个控制器类,由于它所依赖的模型,它们可能会有不同的行为,因此我想获取视图的Controller类并为其提供指定的模型,我可以这样做吗? 我试图通过FXMLLoader获取控制器,但方法getController()返回null!为什么? 1.LightView.java FXMLLoader loader = new FXMLLoader(); anchorPane = loader.load(LightView.class.getResource(fxmlFile));//fxmlFile = “LightView.fxml” //controller = (LightViewController) loader.getController();//fail to get controller!it is null //I want to -> controller.setLight(light); 2.LightView.fxml 3.LightViewController.java …. private Light light; public void initialize(URL arg0, ResourceBundle arg1) 4.Light.java …. a simple pojo 所以,我想要做的是为每个LightViewController提供一个指定的Light对象(它们来自List)。 任何人都可以帮助我吗?非常感谢!

我可以在不同的操作类之间传播struts2 ActionErrors吗?

如果我有一个动作,其结果是redirectAction到另一个类中的另一个动作,是否有可能在结果动作中显示validation错误? 例如,在下面的示例中,如果用户执行actionA(没有与之关联的视图),并且存在错误,是否有任何方法可以在actionB结果(foo.jsp)中显示这些错误? 或者我是以完全错误的方式解决这个问题? actionB /b actionB /b /foo.jsp

我是否正确地使用MVC实现了n层应用程序?

由于对设计模式和架构非常不熟悉,我很难向其他人解释我的最新应用程序是如何设计的。 我在表示层中认为它是纯粹的n层,纯MVC和带有MVC的n层之间切换。 目前我认为后者是正确的,但我想要更有经验的开发人员的想法。 怎么运行的: 浏览器向Tomcat发送HTTP请求。 将请求通过web.xml映射到servlet(我称之为控制器) 控制器实例化一个或多个业务对象并调用这些方法,即customerBO.getById(12) ,它们在调用一个或多个DAO方法(即customerDAO.getById(12)之前将再次执行业务逻辑/validation。 BO返回一个CustomerVO列表给控制器 控制器为视图(JSP)准备属性( request.setAttribute(“customers”, customers); )并选择要使用的.jsp文件,该文件将迭代列表并将XHTML呈现给浏览器。 结构(我的建议/理解) 表示层 :目前正在使用我认为的MVC Web实现:servlet(控制器),jsp(视图)和我自己的OO XHTML表单实现(即CustomerForm)就在这里。 应该可以通过切换此表示层来使用Swing / JavaFX / Flex GUI,而无需在下面的层上更改任何内容。 逻辑层 :分为两层,Business Objects(BO)位于顶层。 负责业务逻辑,但除了输入validation之外我还没有找到太多内容,因为应用程序主要由简单的CRUD操作组成……在许多情况下,这些方法只是在DAO层上调用一个具有相同名称的方法。 使用CRUD方法的DAO类,它再次与下面的数据层联系。 还有一个convertToVO(ResultSet res)方法,它们从数据库和(值列表)值对象执行ORM。 所有方法都将值对象作为输入,即customerDAO-> save(voter)并在成功时返回更新的选举者,在失败时返回null。 数据层 :底层数据存储在数据库中或存储为XML文件。 我没有在这里“编码”任何东西,除了一些MySQL存储过程和触发器。 问题(除了标题中的问题): MVC中的M. 当模型是从逻辑层中的业务对象返回的列表/ VO时,我不确定是否可以调用此n层MVC? 当控制器/视图在这里时,模型是否需要驻留在表示层中? 表示层中的表单模板可以称为模型吗? 如果是这样; BO中的forms和列表都被视为MVC中的M? 根据我的理解,在MVC中,视图应该观察模型并更新更新,但这在视图是呈现的XHTML页面的Web应用程序中是不可能的? 这反过来又引出了一个问题:对于Web应用程序与常规桌面应用程序,MVC的实现方式是否不同? 当所有HTTP请求都在web.xml中显式映射时,我没有使用Front Controller模式吗? 要使用Front Controller,我需要将所有请求转发到标准servlet / controller,然后依次评估请求并调用另一个控制器? Business Layer在我的应用程序中感觉有点“无用”。 你通常在这个图层/对象中放什么? […]

Spring Controller用于处理与其他控制器不匹配的所有请求

我有一系列控制器与请求映射匹配某些URL。 我还想要一个控制器,它将匹配其他控制器不匹配的任何其他URL。 有没有办法在Spring MVC中执行此操作? 例如,我可以使用带有@RequestMapping(value =“**”)的控制器并更改Spring控制器的处理顺序,以便最后处理此Controller以捕获所有不匹配的请求吗? 或者有另一种方法来实现这种行为吗?

找不到默认构造函数; 嵌套exception是使用Spring MVC的java.lang.NoSuchMethodException?

我正在使用Spring MVC控制器项目。 下面是我的控制器,我有一个声明的构造函数,我专门用于测试目的。 @Controller public class TestController { private static KeeperClient testClient = null; static { // some code here } /** * Added specifically for unit testing purpose. * * @param testClient */ public TestController(KeeperClient testClient) { TestController.testClient = testClient; } // some method here } 每当我启动服务器时,我都会遇到exception – No default constructor found; nested exception […]

MVC与javaFX

我正在使用javaFX挣扎于MVC概念。 我正在使用fxml文件构建一个javaFX应用程序。 每个fxml文件都分配了一个控制器,但我不认为这个控制器是MVC模式状态的控制器。 我认为它像某种ViewController,它保存对fxml对象(按钮,窗格等)的引用。 我的问题是:这个“ViewController”和真正的“Controller”之间究竟有什么不同。 什么对象应该做什么事情? 我在哪里设置例如actionListeners?