在我的 JSP 页面中,我使用 <%=TITLE %>
显示页面标题,有时可以,但有时页面显示无法cpmplie代码<%=TITLE %>
。
所以我将代码更改为 ${TITLE}
,也可以。 <%=TITLE %>
有什么不同和${TITLE}
在jsp中?
这是我的页面代码:
<%@ 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>
我在 Controller 中定义它们:
ModelAndView mv = this.getModelAndView();
mv.addObject("DESCRIPTION","MYDESCRIPTION"));
mv.addObject("KEYWORD","MYKEYWORD");
mv.addObject("TITLE","MYTITLE");
return mv;
最佳答案
Answer according to context of your Question
What is different between “<%=TITLE %> ” and “${TITLE} ” in jsp?
由于大多数时候我们使用 out.print() 方法在 JSP 页面中打印动态数据,因此有一个通过 JSP 表达式来完成此操作的快捷方式。 JSP 表达式以 <%= 开头,以 %> 结尾。
<% out.print(TITLE); %>
上面的语句称为 scriptlet,可以使用 JSP 表达式编写为
<%= TITLE %>
我们可以使用 scriptlet 和 JSP 表达式通过 Java 代码检索 JSP 中的属性和参数,并将其用于查看目的。但对于网页设计师来说,java 代码很难理解,这就是为什么 JSP Specs 2.0 引入了表达式语言 (EL),通过它我们可以使用类似 HTML 的标签轻松获取属性和参数。
表达式语言语法是
${TITLE}
我们可以使用EL隐式对象和EL运算符从不同范围检索属性并在JSP页面中使用它们。
更新
According to your controller related query
我说这样写
<title><%=request.getAttribute("TITLE"); %></title>
因为它存储为请求属性。
NOTE
Scriptlets are discouraged since JSP 2.0 which was released almost a decade(!) ago. So Please use Expression Language (EL).
关于java - jsp中 "<%=TITLE %> "和 "${TITLE} "有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33205230/