2012-01-01 61 views
1

我對以下代碼的抱怨是變量templateurlPrefix必須通過<%=request.getAttribute('urlPrefix')%>調用。有沒有辦法讓我傳遞一個變量,所以我可以稱它爲<%=urlPrefix%>有沒有更好的方法將變量傳遞給我的視圖?

public void loadView (PageConfig config) throws ServletException, IOException { 
    HttpServletRequest request = config.getRequest(); 
    HttpServletResponse response = config.getResponse(); 

    RequestDispatcher dispatcher = request.getRequestDispatcher("base.jsp"); 

    response.setContentType("text/html;charset=UTF-8"); 

    request.setAttribute("template", config.getTemplate()); 
    request.setAttribute("urlPrefix", "/CMS"); 

    System.out.println("Controller::LoadView()"); 

    dispatcher.forward(request, response); 
} 
+0

我會考慮本地化您的變量聲明,尤其是調度程序。 – 2012-01-01 15:03:28

+0

@DaveNewton - 你能給我一些關於本地化他們的意思的更多細節嗎?我不喜歡將它們連接到請求,但我不知道有任何其他方式讓jsp使用它們。 – Webnet 2012-01-01 22:23:48

+0

我只是說它們在他們使用的位置附近;抱歉。它只是讓思考代碼更容易。 – 2012-01-01 22:35:29

回答

1

使用JSP EL。 Scriptlets有點......皺眉,笨重。

${urlPrefix} 
0

JSP腳本不是要走的路,現代Java EE應用程序使用表達式語言來訪問變量;語法是#{urlPrefix}。還要考慮使用Java Server Faces(JSF)來實現導航,並將視圖與業務邏輯分開。

查看此tutorial瞭解更多詳情。

+0

你是說現代應用不再使用MVC?只是MV?它看起來像JSF從等式中消除了控制器。 – Webnet 2012-01-01 15:28:05

+0

@Webnet JSF是面向組件的,可以說更適合現代Web應用程序。有很多常用的MVC /動作導向框架 - JSF只是另一種選擇。 – 2012-01-01 16:00:43

+0

@Webnet JSF _is_ MVC – 2012-01-01 16:04:53

相關問題