关于jstl的param

来源:互联网 发布:上到女神的感觉知乎 编辑:程序博客网 时间:2024/06/05 16:42

今天在写一个页面时,有很多地方都要用到这个页面,但是传递的参数不同。也就是其他页面通过传递不同的参数转到这个页面。

比如:有几个页面通过语句"${pageContext.request.contextPath}/song/toQuerySongForChoose.do"+para跳转到同一个页面querySongForChoose.jsp,但是传递的参数不同。

有的只需要传递一个参数,有的两个,有的多个。

para=”?dirId=1"

para="?dirId=0&serialTeamId=9&serialTeamName=KK_SERIAL_1

 

刚开始的时候,我在jsp页面中把所有的参数提取出来。

var dirId=${param.dirId}

var serialTeamId=${param.serialTeamId}

var serialTeamName=${param.serialTeamName}

当我做的时候,第二行的para跳转过去没有问题,但是第一个para跳转过去就出现了问题。我查了下错误提示。说缺少对象。

 

后来我试着把serialTeamId和serialTeamName删除。就正常了。但是,这两个值没法传过去。所以我在想,是不是在转到jsp页面时,会先加载param参数的值,如果碰到null值就会抛出异常。后来想了一个办法,把serialTeamId和serialTeamName放到一个判断语句里。

var dirId=${param.dirId}

if(dirId=='0'){

      var serialTeamId=${param.serialTeamId}

     var serialTeamName=${param.serialTeamName}

}

经测试还是不行。看来在加载jsp时,优先读取param值,而不受js条件语句的约束。既然不受js条件的约束,那受不受jstl条件的约速了。

<input type="hidden" name="serialTeamId" id="serialTeamId" value=<c:if test='${not empty param.serialTeamId}'>${param.serialTeamId }</c:if>>
< input type="hidden" name="serialTeamName" id="serialTeamName" value=<c:if test='${not empty param.serialTeamName}'>${param.serialTeamName }</c:if>>

经测试,可以通过。




原文地址:http://blog.csdn.net/iamstudyingjava/article/details/6978019




原创粉丝点击