0
通常在構建頁面時,可以使用綁定到URL的RequestMapping以及RequestMethod.GET構建該頁面的控制器,您可以在其中設置需要顯示在頁。Spring MVC - 在多個頁面上重複使用小部件
我所擁有的是將每一個頁面上顯示,如果它只是顯示在一個頁面上,我會做一些像一個新聞窗件:
@Controller
@RequestMapping("/news")
public class NewsController {
@RequestMapping(method = RequestMethod.GET)
public String setupForm(
HttpServletRequest request,
@Valid @ModelAttribute("RA") RA ra,
ModelAndView modelAndView,
Model model) {
// do some stuff to ra, put values in model, ....
}
}
而且JSPX頁我上d具有類似:
<c:forEach var="article" items="${newsarticles}" >
<h1>${article.title}</h1>
${article.body}
<br />
</c:forEach>
我試圖解決的問題是如何複製的,甚至在主模板的所有頁面上JSPX片段,而不必明確列出的RequestMapping一個極大的URL。
在JSF中,我會簡單地使用#{newsBean.newsarticles},它可以在所有頁面上工作。
請求攔截器將工作,但有沒有更好的方式來做到這一點沒有RequestInterceptor,或者是RequestInterceptor我唯一的選擇?
這是一個解決方案,但如果有人對文章列表進行更新會發生什麼,您如何更新? 可能需要去AJAX路線並設置一個servlet ... – 2012-08-23 19:25:31
如果您更新數據庫中保存的列表?你可以有另一個包含lastUpdated變量的會話變量,並且每隔一段時間更新列表。當數據庫中的列表更新時,另一種方式是更新數據庫本身中包含最後一次更新日期的參數,請求查詢該日期,檢查它是否是自己的lastUpdated,並僅在必要時進行刷新。真的取決於操作的成本以及信息的最新情況。 – dardo 2012-08-23 20:07:14
看來,Spring MVC無法做到我需要做的事情,而無需使用AJAX或複製所有頁面上的邏輯或添加削弱解決方法。試圖在Tapestry中實現這一點。 – 2012-08-25 12:20:26