我在登陆模块设置Validator表单验证,虽然达到自己的要求,但发现在注销用户的时候出现问题.
登陆后将用户对象保存到Session范围:
request.getSession().setAttribute("oper",oper);
注销时移除oper,并转回login.jsp:
request.getSession().removeAttribute("oper");
return new ActionForward("/login.jsp");问题就出来了
oper被移除后,正常应该显示登陆画面,但却不显示,只显示欢迎画面,oper无法移除,还在session范围内.login.jsp 欢迎画面的代码:
<logic:present name="oper">
<bean:message key="oper.welcome"/>
<b>${oper.realName}</b>
<a href="login.do?method=logout"><bean:message key="oper.logout.text"/></a>
</logic:present>login.jsp 登陆画面代码:
<logic:notPresent name="oper">
<table>
<html:form action="/login.do?method=login">
<tr>
<td><bean:message key="oper.login.name"/></td>
<td><html:text property="loginName" size="20"/></td>
<td><html:errors property="loginName"/></td>
</tr>
<tr>
<td><bean:message key="oper.login.pwd"/></td>
<td><html:password property="loginPwd" size="20"/></td>
<td><html:errors property="loginPwd"/></td>
</tr>
<td><html:submit><bean:message key="oper.login.text"/></html:submit></td>
</html:form>
</table>
</logic:notPresent>我尝试用try 去检验
request.getSession().removeAttribute("oper");
却没有异常在LoginForm里,当我将public class LoginForm extends ValidatorForm改回public class LoginForm extends ActionForm就一切恢复正常,oper能正常从session范围内移除,并成功显示登陆画面,当然就无法使用Validator
登陆后将用户对象保存到Session范围:
request.getSession().setAttribute("oper",oper);
注销时移除oper,并转回login.jsp:
request.getSession().removeAttribute("oper");
return new ActionForward("/login.jsp");问题就出来了
oper被移除后,正常应该显示登陆画面,但却不显示,只显示欢迎画面,oper无法移除,还在session范围内.login.jsp 欢迎画面的代码:
<logic:present name="oper">
<bean:message key="oper.welcome"/>
<b>${oper.realName}</b>
<a href="login.do?method=logout"><bean:message key="oper.logout.text"/></a>
</logic:present>login.jsp 登陆画面代码:
<logic:notPresent name="oper">
<table>
<html:form action="/login.do?method=login">
<tr>
<td><bean:message key="oper.login.name"/></td>
<td><html:text property="loginName" size="20"/></td>
<td><html:errors property="loginName"/></td>
</tr>
<tr>
<td><bean:message key="oper.login.pwd"/></td>
<td><html:password property="loginPwd" size="20"/></td>
<td><html:errors property="loginPwd"/></td>
</tr>
<td><html:submit><bean:message key="oper.login.text"/></html:submit></td>
</html:form>
</table>
</logic:notPresent>我尝试用try 去检验
request.getSession().removeAttribute("oper");
却没有异常在LoginForm里,当我将public class LoginForm extends ValidatorForm改回public class LoginForm extends ActionForm就一切恢复正常,oper能正常从session范围内移除,并成功显示登陆画面,当然就无法使用Validator
楼主【bear13】截止到2008-07-28 16:39:40的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:0
结贴的百分比:0.00 % 结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html