我想在页面加载的时候调用function check_quthority来判断是不是管理员,是的话页面左边加载菜单栏menu.jsp,否则加载menu1.jsp,我写了function如下:页面中调用menu的div标签为:不知道这么写function行不行??div里应该怎么调用这个function????
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
很多新手都搞不清楚js和jsp或者其它后台语言的关系,很容易就写出来这种js与jsp混合的代码。要弄清楚的是,所有呈现给用户看的,都是html代码,没有任何jsp代码。
那么我们写的jsp代码有什么用呢?其实这些后台语言的作用是控制显示什么html代码给用户看,也就是说,jsp代码的执行环境是服务器端,而不是在用户看到的时候再去判断。
以你这个代码为例,用户看到的只会是:
12345 | if ( true ){ menu.jsp的全部内容 } else { menu2.jsp的全部内容 } |
如果题主注意在测试的时候查看页面源代码,就会发现问题所在。这根本就是有语法错误的!
jsp:include动作早就在服务器端完成了,前面js怎么调用都不会改变,而且这种引入完全是错误的!
那么怎么办?实际上这完全可以在服务器端就给用户准备好数据啊!你应该这么做:
12345 | <% if (session.getValue( "userName" ).equals( "admin" )){%> <jsp:include page= "../common/menu.jsp" ></jsp:include> <%} else {%> <jsp:include page= "../common/menu2.jsp" ></jsp:include> <%}%> |
这样的话,根本不需要这个check_authority的js函数。
另外一个问题需要题主自己去验证下,session.getValue("userName")返回的真的是String类型的数据吗?如果不是的话,equals方法的结果会永远为false的,因为equals的实现是,如果两个数据的类型不一致,就直接返回false。
- 3 回答
- 0 关注
- 2124 浏览
添加回答
举报
0/150
提交
取消