在我的JSP页面中,我使用<%=TITLE %>
来显示页面标题,有时它是正常的。但有时页面显示无法识别代码<%=TITLE %>
。
所以我将代码更改为${TITLE}
,并且没关系。在jsp中,<%=TITLE %>
和${TITLE}
之间有什么不同?
这是我的页面代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<base href="<%=basePath%>">
<title><%=TITLE %></title>
<meta name="description" content="${DESCRIPTION}">
<meta name="keyword" content="${KEYWORD}">
</head>
我在控制器中定义它们:
ModelAndView mv = this.getModelAndView();
mv.addObject("DESCRIPTION","MYDESCRIPTION"));
mv.addObject("KEYWORD","MYKEYWORD");
mv.addObject("TITLE","MYTITLE");
return mv;
答案 0 :(得分:2)
根据您的问题的上下文回答
“&lt;%= TITLE%&gt;之间有什么不同? “和”$ {TITLE}“在jsp?
由于大多数时候我们使用out.print()方法在JSP页面中打印动态数据,因此有一个快捷方式可以通过JSP表达式来完成。 JSP表达式以&lt;%=开头,以%&gt;结尾。
<% out.print(TITLE); %>
上面的语句称为scriptlet,可以使用JSP Expression编写为
<%= TITLE %>
我们可以使用scriptlet和JSP表达式在JSP中使用java代码检索属性和参数,并将其用于查看目的。但对于网页设计师来说,Java代码很难理解,这就是为什么JSP Specs 2.0引入了表达式语言(EL),通过它我们可以轻松地使用像标签这样的HTML来获取属性和参数。
表达式语言语法是
${TITLE}
我们可以使用EL隐式对象和EL运算符来检索不同范围的属性,并在JSP页面中使用它们。
根据您的控制器相关查询
我说是这样写的
<title><%=request.getAttribute("TITLE"); %></title>
因为它存储为请求属性。
注意强>
自从JSP 2.0发布近十年(!)以来,不鼓励使用Scriptlet。所以请使用表达语言(EL)。