jsp:include和include指令的用法和区别

<jsp:include>和<%@include%>本质上应该都是为了编码的方便,避免重复「造车轮」而产生的一种减轻码农编码量的提升生产力的手段。同时也能让文件看起来更有条理,更容易整理和修改。对应有代码洁癖的人应该很有用。

使用场景:

同一段JSP代码可能会被多个地方用到用到的情况下,比如一个包括js的一个图片上传的代码段,需要在人事管理的头像上传的地方用到,也可能在财务报表模块的发票拍照上传功能模块处用到,还有可能在其他任何需要上传图片的地方用到,很显然,这个时候你用<jsp:include>或者<%@include%>方式会方便很多。

虽然用在同一场景,但是<jsp:include>和<%@include%>两者的区别还是蛮大的。

先说<%@include file%>

 <%@include file%>的模式是「静态」引用,就是这个引用方式会把你所引用的代码段在编译时一起编译到class,a.jsp包含使用<%@include file%>了b.jsp,那么只会生成一个a.class。简单来说就是合二为一的静态方式。a.jsp里定义的变量什么的,b.jsp里是完全可以用的。所以a.jsp里定义了变量foo,b.jsp是不能再重新定义这样一个变量,否则会报错。所以,这种方式传参问题就不存在了,直接共用变量。

所以这种模式不支持变量的方式,举例:

<%@include file="b.jsp"%>

这个是OK的没有任何问题的。

你如果这样

<% String sFile = "b.jsp"; %>
<%@include file="<%=sFile%>"%>

 

会报错。

再说说<jsp:include>

他是在运行阶段,动态包含b.jsp,a.jsp和b.jsp是独立的存在,只是a包含了b而已,这个方式下,支持变量方式include,比如

<jsp:include page="<%=msg%>"></jsp:include>

msg就是一个定义好的变量。根据不同的需要,值会变化的。

传参方式:

  <jsp:include page="<%=msg%>">

            <jsp:param name="参数名称" value="值,支持变量" />

  </jsp:include>

有事先码一会,待会有空再补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值