寫在前面的話:
在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}即可。