首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsp中的"<%=TITLE %>“和"${TITLE}”有什么不同?

问jsp中的"<%=TITLE %>“和"${TITLE}”有什么不同?
EN

Stack Overflow用户
提问于 2015-10-19 01:24:41
回答 1查看 115关注 0票数 0

在我的JSP页面中,我使用<%=TITLE %>来显示页面标题,有时是ok.But (有时是页面显示)不能显示代码<%=TITLE %>。所以我将代码更改为${TITLE},而jsp中的OK.What和${TITLE}是不同的吗?

这是我的页面代码:

代码语言:javascript
复制
 <%@ 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>

我在控制器中定义了它们:

代码语言:javascript
复制
    ModelAndView mv = this.getModelAndView();
     mv.addObject("DESCRIPTION","MYDESCRIPTION"));
        mv.addObject("KEYWORD","MYKEYWORD");
        mv.addObject("TITLE","MYTITLE");
       return mv;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-19 01:40:01

根据你问题的上下文回答 jsp中的“<%=TITLE %>”和“${TITLE}”有什么不同?

由于大多数时候我们使用out.print()方法在JSP页面中打印动态数据,所以通过JSP表达式实现这一点有一个捷径。JSP表达式以<%=开头,以%>结尾。

代码语言:javascript
复制
<% out.print(TITLE); %> 

上面的语句称为scriptlet,可以使用JSP表达式编写

代码语言:javascript
复制
<%= TITLE %>

我们可以使用scriptlet和JSP表达式使用java代码检索JSP中的属性和参数,并将其用于视图。但是对于web设计人员来说,java代码很难理解,这就是为什么JSP规范2.0引入了表达式语言(EL),通过它我们可以很容易地使用HTML之类的标记来获取属性和参数。

表达式语言语法是

代码语言:javascript
复制
 ${TITLE} 

我们可以使用EL隐式对象和EL运算符从不同的作用域检索属性,并在JSP页面中使用它们。

更新

根据您的控制器相关查询

我说这样写

代码语言:javascript
复制
<title><%=request.getAttribute("TITLE"); %></title>

因为它是作为请求属性存储的。

注意事项 自从JSP2.0发布以来,Scriptlet被禁止使用了近十年(!)很久以前了。所以请使用表达式语言(EL)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33205230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档