使用<jsp:include>,不想写死URL,动态生成URL的解决的方法
2017-06-13 10:45
956 查看
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/
静态包括使用<%@ 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/
相关文章推荐
- 使用<jsp:include>,不想写死URL,动态生成URL的解决办法
- JSP 中使用<%@include%> 报 Duplicate local variable path 错误的解决方法
- JSP 使用<%@include%>报Duplicate local variable path 错误 解决方法
- 玩转Web之Jsp(一)-----jsp中的静态包含(<%@include file="url"%>)与动态包含(<jsp:include>)
- 使用<jsp:include>,不想写死URL,动态生成URL的解决办法
- JSP中使用哪个标签允许向<include/>标签传递参数
- display不能解决<jsp:include />的问题,jsp异步加载另外一个jsp页面
- 关于spring切面使用<aop:aspectj-autoproxy/>报错的解决方法
- <%@ include file=”url”%> 和<jsp:include page=”url” flush=”true” /> 的区别
- 使用struts2的<s:param>等标签向action传值出现中文乱码的解决方法
- 使用<a>标签提交action会执行两次后台方法的原因(反射机制小实例问题的解决)
- <s:property>标签从后台读取Date类型年份为两位在jsp页面显示的解决方法
- <%@ include file="relativeURL" %>静态及<jsp:include>动态
- JSP中使用哪个标签允许向<include/>标签传递参数
- &lt;jsp:include page=&quot;&quot;&gt; 与&lt;%@ include file=&quot;&quot;%&gt;
- android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
- <jsp:include>
- <%@ include file=”relativeURI”%>与<jsp:include page=””>的区别
- JSP标签的<jsp:useBean>和<jsp:setProperty><jsp:getProperty>的使用
- spring3 jsp页面使用<form:form modelAttribute="xxxx" action="xxxx">报错,附连接数据库的spring MVC annotation 案例