JSTL Core:<c:import>
来源:互联网 发布:知乎 好听到爆的歌曲 编辑:程序博客网 时间:2024/06/08 17:21
eclipse下使用JSTL<c:import>。
<c:import>与<jsp:include>指令作用类似,包含<jsp:include>所提供的所有功能,除此之外还可以访问其他Web资源或者网络资源。
1.<c:import>所具有的属性。
<c:import>标签具有以下属性:
<c:import>标签有如下属性:
2.访问当前Web应用的其他文件。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>首先引用该标签库,需要jstl.jar和standard,jar包。将其放入对应工程的WEB-INF目录下的lib目录下。
在这个工程下共有三个文件,在此只用到Hello.jsp和NewFile1.jsp文件。
Hello.jsp其中只用来显示Hello World!用于测试是否导入成功。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>Hello World!</body></html>
NewFile1.jsp中使用<c:import>来导入Hello.jsp。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><c:import url="Hello.jsp" /></body></html>
运行结果:
运行NewFile1.jsp 将Hello.jsp 导入其中。
2.包含其他Web资源或者网站资源。
1》网站资源。
在此直接引入百度的链接进行测试。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><c:import url="http://www.baidu.com" /></body></html>
运行结果:
可以看到运行成功,打开NewFile1.jsp 显示的是BD的主页。
但是可以看到图中的文字出现乱码,此时可以用其中的charEncoding属性进行设置即可。
将其中<c:import>代码改为即可:
<c:import url="http://www.baidu.com" charEncoding="UTF-8"/>
2》其他Web资源。
在同一个eclipse工作目录下有多个Web工程。
在此测试访问MyJavaWebApp下的Hello.jsp文件。
Hello.jsp中提示Hello World In MyJavaWebApp。
修改JSTLCore中NewFile1.jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><c:import url="/Hello.jsp" context="/MyJavaWebApp" /></body></html>
这里使用到了context属性,用来指定访问Web的根目录,url改为要访问的资源名。
同时需要在JSTLCore中的META-INF中设置context.xml文件,没有该文件的话需要创建并修改为:
<Context reloadable="true" crossContext="true" />
然后运行NewFile1.jsp
可以看到将MyJavaWebApp中的Hello包含进来了。
3.var、scope属性。
上述已经使用了url、context、charEncoding属性,还有var、scope和varReader属性,但是varReader属性用法不太清楚。
var:
以包含当前Web其他文件为例。
如果将NewFile1.jsp中的代码修改为:
<c:import url="Hello.jsp" var="hello"/>
运行后,运行后将不会显示任何东西,因为此时我们是将Hello.jsp文件导入进来了,但是将其保存到var的hello变量中了,所以我们需要使用该变量才可以。
使用EL表达式:
${hello}
使用java代码:
<%Object hello = pageContext.getAttribute("hello");out.print(hello);%>
scope:
如果使用var属性的话,将该属性默认保存到page范围内的。
如果将其<c:import>改为:
<c:import url="Hello.jsp" var="hello" scope="session"/>
并且使用java代码将其输出的话。
此时全部的NewFile1.jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><c:import url="Hello.jsp" var="hello" scope="session"/><!-- 将scope设置为session范围 --><%Object hello = pageContext.getAttribute("hello");//此时读取的是page范围内的属性out.print(hello);%></body></html>
运行的话会发现输出的是null。
因为此时的var属性保存的为session范围内的。
所以使用pageContext是获取不到这个属性的。
可以将获取的java代码修改为:
<c:import url="Hello.jsp" var="hello" scope="session"/><%Object hello = session.getAttribute("hello");//修改过的,此时读取的是session范围内的属性out.print(hello);%>
运行之后成功输出想要的结果。
如果是包含其他Web的资源或者网络资源的话使用方法也是如此。
- JSTL Core:<c:import>
- jstl 中的 包含标签<c:import>
- JSTL(core)
- jstl-core
- jstl/core
- JSTL 入门: 探讨 core
- JSTL 入门:探讨 core
- JSTL 入门: 探讨 core
- JSTL 入门: 探讨 core
- JSTL 入门: 探讨 core
- JSTL--core详解
- JSTL 入门: 探讨 core
- JSTL-Core标签库
- JSTL中的Core应用
- JSTL 入门: 探讨 core
- JSTL ---core functions formatdata
- JSTL-Core标签库
- jstl之core
- 前端开发APP,从HBuilder开始~
- 设计模式——简单工厂模式、工厂方法模式和抽象工厂模式
- Android 自定义底部弹窗
- Oracle 在字符串中输入单引号或特殊字符
- 简单的windows服务编程框架(MSDN例子代码)
- JSTL Core:<c:import>
- C++项目单元调试
- QT QPainter用法(包含画点,画圆,画矩形,画线等)
- 关于安卓里实现监听器回调模式的运用,自己的一些概括理解和总结
- mosquitto通信 ---我的笔记(4.1)
- Spring中IOC和AOP的详细解释
- NOIP2016集训总结
- jquery的each()详细介绍
- python练习