使用<c:set>标签配置项目路径

写在前面的话:

  在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}即可。

posted @ 2017-07-19 10:42  陈扬天  阅读(2438)  评论(0编辑  收藏  举报