jsf中用户登陆与页面显示问题
时间:2008-06-06 08:45:27
来源:论坛整理 作者: 编辑:chinaitzhe
这个怎么做?
假设2:用户登录后把一些相关信息放在session中,在另一个页面判定用户未登陆时是用session中的userName再到数据库中搜索一次来判定到底登录没 还是 在用户登录后在user表中设置一个用户权限,假如为某个字符则表示已经登录了。
那么,用那种方法更科学,更好?或者说有更好的方法?
假设3:在访问一个页面时假如之前就已经登录了就显示 某某您好,欢迎您登录 日期。假如未登陆就显示登录框。
这个怎么做?判定是否登陆在Bean中写方法,但是在faces-config.xml中配置导航规则时该怎么写?它们都是一个页面啊。。。难道说写header1.jsp header2.jsp两个header,一个放登录框,一个放 某某您好,欢迎您登录 日期?或者说还是把判定放在页面里?那这个不是违反了框架式开发的原理吗,而且不好维护是吧
网友回复:没人知道?还是学JSF的人少哦.....郁闷啊.
JSF与STRUTS差不多的,这两个都是一个人搞出来的.
具体的不清楚说下方法总有吧?比如说在STRUTS中怎么处理这种情况呢
网友回复:问题1 :主页这么写
<%
if(session.getAttribute("username")==null){
%>
请您登陆!
<%
}else{
%>
你好: <%=session.getAttribute("username")%>
<%}%>
问题2 :在另外一个页面判定session.getAttribute("username")是否为空,当然,这是在不涉及用户权限的情况下,假如用户有权限区别,那么在登录的时候把用户权限放到session中,然后取出来判定就可以!
问题3 :放在页面中就可以了,因为需要进行的判定很简单,MVC中也不是说前台就不能有逻辑代码。
网友回复:哦,那最开始session中的一些对象在哪定义呢?
是在主页中定义还是在backing bean中?
貌似在主页中定义userName为null
<%
if(session.getAttribute("username")==null){
%>
这句话好象总为true吧
网友回复:
在登陆成功后,用session.setAttribute("userName",userName);这样的话,只要不结束此次对话,session.getAttribute("username")都不会为空.
其实你说的三个问题都可以用是一个问题,都可以用session对象来解决,这个是JSP的隐式对象,可以多看看它的资料
网友回复:说的很在理
网友回复:只需要一个范围为session的manager bean就可以了,既然用jsf就尽量不要去考虑 <%%>这样的东西.
在manager bean设置一个属性如boolean login=false;
登陆成功login=true;
在页面中根据login值来决定是登陆还是欢迎,你可以这样写
<h:panelGrid style='display:#{UserBean.login==true?"none":""}'>
<h:outputText value="请登陆"/> .....
</h:panelGrid>
<h:panelGrid style='display:#{UserBean.login==true?"":"none"}'>
<h:outputText value="欢迎你,#{UserBean.username}"/> .....
</h:panelGrid>
关键字:jsf,用户,登陆,页面,显示,问题,
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面