使用<jsp:include>,不想写死URL,动态生成URL的解决的方法
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脚本的灵活性。实现随意复杂的推断逻辑。
使用<jsp:include>,不想写死URL,动态生成URL的解决的方法的更多相关文章
- 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 ...
- 微信小程序的经纬度不想写死,需要转成number类型不能用浮点型
click: function (e) { var msg = this.data.placeData; var latitude = Number(msg.latitude) var longitu ...
- java web service wsdlLocation 不写死 可动态配置
本解决方案用例Maven 如果项目没用Maven的客园参考扩展一下思路 寻找下适合解决自己项目的方式
- <%@include和<jsp:include
博客地址:http://www.cnblogs.com/shizhongtao/p/3506742.html欢迎交流 <%@ include %>是编译时包含,<jsp:includ ...
- 项目中遇到的问题——jsp:include
昨晚记错了,项目中用的是这个<jsp:attribute>,不过没关系,都差不多!原理是传参数 具体用法: 假设有两个tag文件 aaa 和 bbb aaa有两个属性:name age ...
- <%@ include file=""%>与<jsp:include page=""/>区别(转)
http://www.iteye.com/topic/312500/ 我们都知道在jsp中include有两种形式,分别是Include指令:<%@ include file="&qu ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- [转]<jsp:include>和<%@include%>的区别
首先,转发自yangbobo1992的 <jsp:include>和<%@include%>的区别 这个是我见过写的最好的之一 <%@include%>和<j ...
- jQuery刷新包含的<jsp:include>页面
jQuery刷新包含页面 JQuery刷新包含页面,以下两种形式均可: <%@include file="../include/header.jsp" %> < ...
随机推荐
- 《Github入门与实践》读书笔记 蟲咋先生的追求之旅(上)
<Github入门与实践>作者: [日] 大塚弘记 译者:支鹏浩/刘斌 简介 本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作 ...
- Maven 浅谈一
一.Maven的作用 在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差 ...
- centos6.5安装rabbitmq3.6.14
The minimum version of Erlang/OTP required to run RabbitMQ server 3.6.0 through 3.6.14 is R16B03. St ...
- jQuery学习笔记之Ajax用法详解
这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...
- hibernate flushMode 错误
1 十一月 15, 2017 10:13:36 上午 org.apache.struts2.dispatcher.Dispatcher error 2 严重: Exception occurred d ...
- SQL中锁表语句简单理解(针对于一个表)
锁定数据库的一个表 复制代码代码如下: SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 复制代码代码如下: SELECT * FROM tab ...
- cocoaPods打包的静态库
cocoaPods管理自己的静态库供其它人下载使用(直接使用上一篇用cocoaPod打包的静态库)(1) 创建github仓库 (2) 下载仓库到本地 (3) 将打包好的framework放到项目中 ...
- [转]ORACLE递归查询
转自:http://www.oracle.com/technetwork/cn/articles/hartley-recursive-086819-zhs.html 递归数据库处理,也称为材料清单 或 ...
- 小随笔:利用Shader给斯坦福兔子长毛和实现雪地效果
0x00 前言 发现最近没有了写长篇大论的激情,可能是到了冬天了吧.所以这篇小文只是简单介绍下如何在Unity中利用shader很简单的实现雪地效果以及毛皮效果,当然虽然标题写在了一起,但其实这是俩事 ...
- sqoop: mysql to hive
sqoop import --connect 数据库连接 --username 数据库用户名--password 数据库密码 --table 导入的表 -m 1 --hive-import --tar ...