JSP中文件包括有2种方式,静态包括和动态包括。

静态包括使用<%@ include file="" %>。动态包括使用<jsp:include page="" />

本文不打算介绍这2种方式的差别和使用场景,主要关注page和file属性的路径问题。

假设事先知道被包括页面的url,那么直接写死到page或file属性中就可以。这样的写死url的方式。没有什么不好,可是很不灵活,不能满足动态生成url的需求。

考虑这样的场景。A.jsp訪问B.jsp,传递一个id參数值,B.jsp须要依据id的值。包括不同的页面。当然,我们能够通过n多的if-elseif来实现,但这样的方式不灵活,有些时候甚至是根本不可能的事。

假设想要实现动态包括。最简单也是最合理的解决方案例如以下:

<jsp:include page="<%=request.getContextPath()%>/message/<%=request.getParameter("id")%>/.targetjsp"></jsp:include>

可是这样的方式不行,容器不会解析page中的jsp脚本。但经过试验,

<jsp:include page="<%=request.getParameter("id")%>"></jsp:include> 这样的方式。是可以正常解析參数值的。

于是我们能够得出结论:page属性要么全然是写死的常量URL,要么全是动态的java脚本,2种方式不能混搭

<% String urlPath = "/message/plugins/smsplugin_" + request.getParameter("type")+ "/add.jsp";%>

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

像这样的方式。可以借助java脚本的灵活性。实现随意复杂的推断逻辑。

參考资料:http://dangry.iteye.com/blog/868422/

使用&lt;jsp:include&gt;,不想写死URL,动态生成URL的解决的方法的更多相关文章

  1. SSI注入--嵌入HTML页面中的指令,类似jsp、asp对现有HTML页面增加动态生成内容,见后面例子

    SSI注入漏洞总结 from:https://www.mi1k7ea.com/2019/09/28/SSI%E6%B3%A8%E5%85%A5%E6%BC%8F%E6%B4%9E%E6%80%BB%E ...

  2. 微信小程序的经纬度不想写死,需要转成number类型不能用浮点型

    click: function (e) { var msg = this.data.placeData; var latitude = Number(msg.latitude) var longitu ...

  3. java web service wsdlLocation 不写死 可动态配置

    本解决方案用例Maven 如果项目没用Maven的客园参考扩展一下思路 寻找下适合解决自己项目的方式

  4. <%@include和<jsp:include

    博客地址:http://www.cnblogs.com/shizhongtao/p/3506742.html欢迎交流 <%@ include %>是编译时包含,<jsp:includ ...

  5. 项目中遇到的问题——jsp:include

    昨晚记错了,项目中用的是这个<jsp:attribute>,不过没关系,都差不多!原理是传参数 具体用法: 假设有两个tag文件  aaa 和 bbb aaa有两个属性:name  age ...

  6. <%@ include file=""%>与<jsp:include page=""/>区别(转)

    http://www.iteye.com/topic/312500/ 我们都知道在jsp中include有两种形式,分别是Include指令:<%@ include file="&qu ...

  7. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  8. [转]<jsp:include>和<%@include%>的区别

    首先,转发自yangbobo1992的 <jsp:include>和<%@include%>的区别 这个是我见过写的最好的之一 <%@include%>和<j ...

  9. jQuery刷新包含的<jsp:include>页面

    jQuery刷新包含页面 JQuery刷新包含页面,以下两种形式均可: <%@include file="../include/header.jsp" %>   < ...

随机推荐

  1. css定位讲解

    定位分三种:相对定位,绝对定位,固定定位;     相对定位:position:relatve;     绝对定位:position:absolute; 固定定位:position:fixed; 一, ...

  2. 使用cobbler批量安装操作系统(基于Centos7.x )

    1.1 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使 ...

  3. [转载] Thrift-client与spring集成

    转载自http://shift-alt-ctrl.iteye.com/blog/1990030?utm_source=tuicool&utm_medium=referral Thrift-cl ...

  4. Python字符编码详解(转)

    http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 在没有reload(sys)之前调用sys.setdefaultencoding ...

  5. Vue之彻底理解自定义组件的v-model

    最近在学习vue,今天看到自定义事件的表单输入组件,纠结了一会会然后恍然大悟...官方教程写得不是很详细,所以我决定总结一下. v-model语法糖 v-model实现了表单输入的双向绑定,我们一般是 ...

  6. ERP中通过EDI导入资料的时候出现【Microsoft Office Excel不能访问文件‘C:\Windows\TEMP\433....’

    问题描述: ERP中导入单据的时候报错,Microsoft Office Excel不能访问文件'C:\Windows\TEMP\433....可能的原因有:·文件名称或路径不存在,文件正被其他程序使 ...

  7. iOS面试题最全梳理

    OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错 ...

  8. 01---Spring框架

    Spring框架简介及官方压缩包目录介绍 工厂模式 Spring环境搭建 IoC详解 Spring创建Bean的三种方式(包含两种工厂方式) scope属性讲解 DI详解 Spring中几种注入方式 ...

  9. Python资料汇总(建议收藏)

    整理汇总,内容包括长期必备.入门教程.练手项目.学习视频. 一.长期必备. 1. StackOverflow,是疑难解答.bug排除必备网站,任何编程问题请第一时间到此网站查找. https://st ...

  10. 防止SSH自动断线

    在连接远程SSH服务的时候,经常会发生长时间后的断线,或者无响应(无法再键盘输入). 总体来说有两个方法: 1.依赖ssh客户端定时发送心跳. putty.SecureCRT.XShell都有这个功能 ...