2012-01-01 79 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

相关问题