NIHVIVO-646 Break setup method into two parts, so that FreeMarker controllers that aren't generating a full page only do the part of the setup they need. In particular, the autocomplete controller doesn't need to do page setup.

This commit is contained in:
rjy7 2010-06-17 21:45:02 +00:00
parent 97a753b66e
commit 369a0f0a93
2 changed files with 13 additions and 5 deletions

View file

@ -25,6 +25,7 @@ public class FreeMarkerComponentGenerator extends FreeMarkerHttpServlet {
FreeMarkerComponentGenerator(HttpServletRequest request, HttpServletResponse response) {
doSetup(request, response);
setUpPage();
}
public String getIdentity() {

View file

@ -67,6 +67,7 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
try {
doSetup(request, response);
setUpPage();
setTitleAndBody();
write(response);
@ -82,7 +83,7 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
doGet(request, response);
}
// Basic setup needed by all controllers
// Basic setup needed by all FreeMarker controllers
protected void doSetup(HttpServletRequest request, HttpServletResponse response) {
if ( !(this instanceof FreeMarkerComponentGenerator) ) {
@ -100,6 +101,14 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
vreq = new VitroRequest(request);
this.response = response;
portal = vreq.getPortal();
setTemplateLoader();
}
// Setup needed by all controllers that display a full page.
// Controllers that display parts of a page, respond to an Ajax request, etc., do not use this.
protected void setUpPage() {
urlBuilder = new UrlBuilder(portal);
// RY Can this be removed? Do templates need it? Ideally, they should not.
@ -112,8 +121,6 @@ public class FreeMarkerHttpServlet extends VitroHttpServlet {
appName = portal.getAppName();
setSharedVariable("siteName", appName);
setTemplateLoader();
TabMenu menu = getTabMenu();
root.put("tabMenu", menu);