我对 MVC 的实际工作方式有点困惑。
到目前为止,这是我拥有的类型:
- 静态 jsp 页面有一个发布到控制器 servlet 的表单。
- 控制器使用数据库访问对象从数据库中获取适当的信息并将其存储到 java bean 中。
- 将该java bean设置为请求属性,转发到其他jsp页面进行显示。
我感到困惑的是,当我访问的第一个 jsp 页面不是静态的并且我需要检索一个 java bean 以进行显示而没有一些表单发布到控制器来检索它时该怎么办。
似乎如果我调用数据库访问对象来从我的 jsp 页面中生成我需要的 java bean,它将违背 MVC 的本质。
所以我的问题是应该如何处理?在这种情况下,我应该如何在坚持 MVC 原则的同时检索我需要的 java bean?
谢谢!
编辑:我将添加一些代码以使其更清晰:
目前我有一个名为 owner.jsp 的页面,它应该显示酒店列表。在该页面中,我正在获取这样的酒店列表:
<%
HotelDAO hotelDAO = new HotelDAO();
List<HotelBean> hotels = hotelDAO.getHotels();
pageContext.setAttribute("hotels", hotels);
%>
然后使用 EL 使用 forEach 循环显示每个酒店。
这根本不通过控制器。我将如何调整它以与 MVC 模型一起使用?
对我来说,检查“hotels”bean 是否已设置并转发到控制器页面,然后再设置“hotels”bean 并转发回 owner.jsp 页面,这似乎不合逻辑。
在这种情况下,MVC 如何确保用户始终通过控制器?我之前写的其他页面都是静态的,只有当你提交了一些表单时,它才会进入控制器,设置一些 bean 并转发到某个页面进行显示。