在我的JSP页面中,我使用<%=TITLE %>来显示页面标题,有时是ok.But (有时是页面显示)不能显示代码<%=TITLE %>。所以我将代码更改为${TITLE},而jsp中的OK.What和${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;发布于 2015-10-19 01:40:01
根据你问题的上下文回答 jsp中的“<%=TITLE %>”和“${TITLE}”有什么不同?
由于大多数时候我们使用out.print()方法在JSP页面中打印动态数据,所以通过JSP表达式实现这一点有一个捷径。JSP表达式以<%=开头,以%>结尾。
<% out.print(TITLE); %> 上面的语句称为scriptlet,可以使用JSP表达式编写
<%= TITLE %>我们可以使用scriptlet和JSP表达式使用java代码检索JSP中的属性和参数,并将其用于视图。但是对于web设计人员来说,java代码很难理解,这就是为什么JSP规范2.0引入了表达式语言(EL),通过它我们可以很容易地使用HTML之类的标记来获取属性和参数。
表达式语言语法是
${TITLE} 我们可以使用EL隐式对象和EL运算符从不同的作用域检索属性,并在JSP页面中使用它们。
更新
根据您的控制器相关查询
我说这样写
<title><%=request.getAttribute("TITLE"); %></title>因为它是作为请求属性存储的。
注意事项 自从JSP2.0发布以来,Scriptlet被禁止使用了近十年(!)很久以前了。所以请使用表达式语言(EL)。
https://stackoverflow.com/questions/33205230
复制相似问题