<分区>
我正在用 Java(带有 JSP View 的 Spring MVC)构建小型网站,并试图找到制作和包含少数可重用模块(如“最新消息”“即将发生的事件”...)的最佳解决方案。
那么问题是:Portlet、磁贴或其他一些技术?
标签 java spring-mvc module
<分区>
我正在用 Java(带有 JSP View 的 Spring MVC)构建小型网站,并试图找到制作和包含少数可重用模块(如“最新消息”“即将发生的事件”...)的最佳解决方案。
那么问题是:Portlet、磁贴或其他一些技术?
最佳答案
如果您使用的是 Spring MVC,那么我建议您使用 Portlet。在 Spring 中,portlet 只是轻量级的 Controller ,因为它们只负责整个页面的一个片段,而且非常容易编写。如果您使用的是 Spring 2.5,那么您可以享受新注释支持的所有好处,它们非常适合整个 Spring 应用程序,具有依赖注入(inject)和使用 Spring 的其他好处。
Portlet Controller 与 Servlet Controller 非常相似,这里是一个简单的示例:
@RequestMapping("VIEW")
@Controller
public class NewsPortlet {
private NewsService newsService;
@Autowired
public NewsPortlet(NewsService newsService) {
this.newsService = newsService;
}
@RequestMapping(method = RequestMethod.GET)
public String view(Model model) {
model.addAttribute(newsService.getLatests(10));
return "news";
}
}
这里,一个 NewsService 会被自动注入(inject)到 Controller 中。 view 方法将一个 List 对象添加到模型中,它将在 JSP 中作为 ${newsList} 提供。 Spring会根据方法的返回值寻找名为news.jsp的 View 。 RequestMapping 告诉 Spring 该 Controller 用于 portlet 的 VIEW 模式。
XML 配置只需要指定 View 和 Controller 所在的位置:
<!-- look for controllers and services here -->
<context:component-scan base-package="com.example.news"/>
<!-- look for views here -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/news/"/>
<property name="suffix" value=".jsp"/>
</bean>
如果您只想将 portlet 嵌入到现有应用程序中,您可以捆绑一个 portlet 容器,例如 eXo , Sun , 或 Apache .如果您想将应用程序构建为一组 portlet,您可能需要考虑一个完整的 portlal 解决方案,例如 Liferay Portal .
关于java - 制作模块化 Java Web 应用程序的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71692/