学生成绩管理系统,有学生教师管理员三种用户,在用户登录表中,有角色这个字段,有student、teacher、admin三种角色,通过Httpsession,在jsp页面中进行判断是那种角色,下面是java代码中的login方法,
在java类中,
在java类中,
DlService dlService=new DlServiceImp(); private int pageNow=1; private int pageSize=8; private HttpSession session1; private HttpServletRequest request1; private Dlb dl; public Dlb getDl() { return dl; } public void setDl(Dlb dl) { this.dl = dl; } public String login() throws Exception { DlService dlService=new DlServiceImp(); Dlb user=dlService.find(dl.getXh(), dl.getMm()); if(user!=null) { session1 = ServletActionContext.getRequest().getSession(); session1.setAttribute("USER", user); return SUCCESS; } else return ERROR; }
下面是jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>学生成绩管理系统</title> </head> <frameset rows="18%,82%" cols="*" framespacing="3" frameborder="yes" border="0"> <frame src="head.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" /> <frameset rows="*" cols="210,*" framespacing="0" frameborder="yes" border="1"> <s:if test="#session1.USER.getJs() == "admin""> <frame src="left_adm.jsp" name="left_admFrame" scrolling="no" noresize="noresize" id="left_admFrame" /> <frame src="right_adm.jsp" name="right_admFrame" id="right_admFrame" /> </s:if> <s:elseif test="#session1.USER.getJs() == "teacher""> <frame src="<%= request.getContextPath() %>/frame/teacher/left_tea.jsp" name="left_teaFrame" scrolling="no" noresize="noresize" id="left_teaFrame" /> <frame src="<%= request.getContextPath() %>/frame/teacher/main_tea.jsp" name="right_teaFrame" id="right_teaFrame" /> </s:elseif> <s:else> <frame src="<%= request.getContextPath() %>/frame/student/left_stu.jsp" name="left_stuFrame" scrolling="no" noresize="noresize" id="left_stuFrame" /> <frame src="<%= request.getContextPath() %>/frame/student/main_stu.jsp" name="right_stuFrame" id="right_stuFrame" /> </s:else> </frameset> </frameset> </html>
但不管用,请教
解决方案
15
<s:if test=”#session1.USER.getJs() == “admin””>
为什么是session1呢,session是JSP的内置对象直接用可以了啊,就像你使用request一样的。
为什么是session1呢,session是JSP的内置对象直接用可以了啊,就像你使用request一样的。
10
<s:if test="#session.USER.getJs() == "admin"">
10
<s:if test= <%session.USER.getJs()%> == “admin””>
这样的,session是内置对象,但是也是需要经过JDK编译的,所以是Java代码
这样的,session是内置对象,但是也是需要经过JDK编译的,所以是Java代码
10
<s:if test="#session.USER.js == "admin"">
试试这个,
检查是获取不到user对象,还是获取不到js属性,或是你的比较逻辑有问题,慢慢排查吧
15
本人的天啊,本人只是写个大致意思,Java里获取session里面的内容怎么写,不是通过.取得吧。得是session.getAttribute(“…..”)这样的。
15
<s:if test="${USER.js == "admin"}">
<s:if test="<%= "admin".equals( ((User)session.getAttrbute("USER")).getJs() ) %>">
15
request.getSession().setAttribute("user", user);//后台这么写 <s:if test="${user.js == "admin"}"> //jsp这么写
10
写错了应该是这样
<s:if test="${user.js eq "admin"}">