写在前面的话:
在java项目中,路径的配置是一项最基础也是最必不可少的工作,最初我们配置路径是根据<%=request.getContextPath()%>这个java代码块进行配置的,很繁琐又不方便,每一个引入文件都要重新写一遍,而且如果对路径的分工需要细化的时候(比如有游客登录路径,注册用户登录路径…),就很难快速精准的完成所需工作,下面介绍一种配置方法,在整合路径分工明确的项目时会经常使用,简洁而又方便。
众所周知,jsp中的jstl标签是一个很强大的工具,实战中会经常用到,引入方法:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
其中一些标签诸如<c:if></c:if>等等功能强大,我在这里不再赘述,相信稍微有些经验的朋友都能够熟练使用,现在我想说的是jstl标签库中的<c:set></c:set>标签。
一般情况下我们配置adminPath等路径,需要在xx.properties文件中配置好值,在需要的地方引入该配置文件,使用${adminPath}获取配置好的值,如果能不引入配置文件,直接在需要的页面上配置完成,会不会又省不少的事呢?答案是可以的。
我们首先创建一个taglib.jsp文件,作为文件头,代码如下:
<%@ taglib prefix="shiro" uri="/WEB-INF/tlds/shiros.tld" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> <%@ taglib prefix="fnc" uri="/WEB-INF/tlds/fnc.tld" %> <%@ taglib prefix="sys" tagdir="/WEB-INF/tags/sys" %> <%@ taglib prefix="act" tagdir="/WEB-INF/tags/act" %> <%@ taglib prefix="cms" tagdir="/WEB-INF/tags/cms" %> <c:set var="ctx" value="/com_sm_ssm/${fns:getAdminPath()}"/> <c:set var="ctxStatic" value="/com_sm_ssm/static"/>
这个文件是要写我们在加载页面的时候所有需要引入的文件,诸如js,css等都可以放在这个文件中,只要在所有需要这些文件的页面的头部,使用如下代码块,将taglib.jsp引入页面中,那么所配置的路径就会生效了。
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
这样配置的好处是省时省力,页面简洁,新增一个路径只需要在taglib.jsp文件中多加入一个<c:set></c:set>标签即可,<c:set></c:set>标签中,var是需要的路径名称,value是该路径的值,在需要跳转或者使用Ajax异步调用的地方,直接是${ctxStatic}即可。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/11490.html