`
暗夜骑士0376
  • 浏览: 81329 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

JSF 里的action心得

阅读更多
最近一直都在研究jsf 以前一直对ajax anction actionListener 里的东西不是很清楚 对jsf里的流程都不是很清楚 经过一段时间的学习 现在把自己的学习的心得写出来
首先就是
action的使用规律
  我使用action一般都是用来进行页面的导航可以通过一个result进行导航 具体这个导航的我认为应该是类似于forward的工作模式 就是说request范围的参数也是可以传递的
现在就举一个例子
首先是一个login.xhtml的代码
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Login Face</title>
        <script src="js/login.js" type="text/javascript"></script>
    </h:head>
    <h:body>
        <h:form id="loginForm" onsubmit="return checkForm()">
               <h:outputScript library="javax.faces" name="jsf.js" target="head"/>
               <h:outputLabel value="welcom to Login our site" ></h:outputLabel>
               <br/><h:outputLabel value="#{user.message}"></h:outputLabel>
               <br/><h:outputLabel value="userName:"></h:outputLabel>
               <h:inputText id="userName" value="#{user.userName}" ></h:inputText>
               <br/><h:outputLabel value="password:" ></h:outputLabel>
               <h:inputSecret  id="password" value="#{user.password}"></h:inputSecret>
               <br/><h:commandButton value="submit" action="#{manager.login}" />
               <a href="register.jsf">register</a>
               <a href="forget.jsf">forget</a>
        </h:form>
    </h:body>
</html>

从这个代码中可以看出的是我的业务的逻辑主要是#{manager.login} 所以我先设置的user这个managerBean 是一个request的bean 但是 manager是session的bean
我规定的是加入登录成功的话就转到successfully.jsf的页面 如果输入的用户名不存在的话就在当前页面进行显示 如果密码错误的话就显示密码错误
manager.login的代码如下
 public String  login(){
        String result = null;
        DBibatis db = new DBIbatisImpl();//这是一个数据库操作的接口
        ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
        //获得的是request里的数据
        UserBean loginUser =(UserBean)context.getRequestMap().get("user");
        //从数据库中获得这个用户名的结果
        UserBean dbUser = db.queryByName(loginUser.getUserName());
        if(dbUser == null){
        //没有这个用户名就在request中增加message的内容
         loginUser.setMessage("no this userName here!");
            result = "login.jsf";//规定导航的jsf
        }else {
            if(dbUser.getPassword().equals(loginUser.getPassword())){
                result = "successfully.jsf";//显示的是成功之后的页面
                this.userName = loginUser.getUserName();//在这个sessionScope的manager 我设置了一个用户名的标识userName
            }else{
               //这个原理和第一个是相同的 所以说不再讲解了
               loginUser.setMessage("the password is wrong!");
                result = "login.jsf";
            }
        }
        return result;//返回这个导航的结果
    }

successfully.jsf中的代码是
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:outputLabel value="Welcome you ! "></h:outputLabel>
        <h:outputText value="#{manager.userName}"></h:outputText>
    </h:body>
</html>
我认为有的是直接result 可以将后缀名去掉 我觉得这样是不是让代码变得没有层次感所以这就是我的写的风格 个人喜好 不说也罢

分享到:
评论

相关推荐

    jsf in action 中文版

    2. **JSF in Action中文版(Sample).pdf** - 这可能是书的第一部分或样章,包括JSF的基本概念、安装配置、生命周期、页面导航、组件库(如PrimeFaces或Mojarra)的使用,以及如何创建基本的JSF应用程序等内容。...

    JSF in Action英文版(含源代码)

    《JSF in Action》这本书深入介绍了JSF的核心概念和技术,是学习JSF的宝贵资源。 **1. JSF架构与组件模型** JSF的核心是一个组件模型,它允许开发者使用预定义的UI组件(如按钮、表单、文本框等)构建页面。这些...

    《JSF in Action》PDF

    《JSF in Action》这本书是JSF技术的详细指南,旨在帮助读者深入理解和应用JSF框架。 在书中,你可以了解到以下关键知识点: 1. **JSF基本概念**:JSF的核心组件,如UIComponent、FacesContext和Lifecycle,以及...

    JSF in action jsf宝典

    **JSF in Action** 和 **jsf宝典** 可能是关于JSF技术的详细教程或参考书籍,旨在帮助开发者深入理解JSF的工作原理和最佳实践。这类资源通常会涵盖JSF的核心概念、组件、生命周期、事件处理、表单验证、国际化、错误...

    jsf 资料 pdf 代码 JSF IN ACTION

    在《JSF IN ACTION》这本书中,读者可以深入理解JSF的工作原理及其在实际项目中的应用。 **JSF组件库** 包括一系列预定义的UI组件,如按钮、文本框、表格等,这些组件可以组合成复杂的用户界面。开发者可以通过定制...

    JSF IN ACTION 源代码

    **JSF IN ACTION 源代码详解** "JSF IN ACTION 源代码" 是一本深入探讨JavaServer Faces(JSF)技术的书籍的配套源码。这本书籍旨在帮助开发者全面理解JSF框架,通过实践代码来提升技能。源代码的提供意味着读者...

    JSF in Action英文版

    "JSF in Action"是该领域的一本知名书籍,属于“in Action”系列,这个系列以其深入浅出、实战性强的特点深受开发者喜爱。这本书英文版的大小为12.48M,包含丰富的JSF实践知识。 JSF的核心理念是将UI组件与业务逻辑...

    JSF in Action 中文版

    ### JSF in Action 中文版 关键知识点解析 #### 一、JSF 技术概述 **JavaServer Faces (JSF)** 是一种用于构建企业级 Java Web 应用程序的标准框架,它简化了用户界面的开发过程。JSF 通过提供一套丰富的组件库以及...

    详细用法jsf in action

    《详细用法jsf in action》一书由Kito D. Mann撰写,是JavaServer Faces(简称JSF)技术深入学习的重要参考资料。本书通过全面、细致的讲解,旨在帮助读者掌握JSF的核心概念与实际应用,使学习者能够熟练运用JSF进行...

    jsf in action

    jsf in action 电子书jsf in action 电子书jsf in action 电子书jsf in action 电子书

    JSF中action,actionListener,valueChangeListener的区别

    在JavaServer Faces (JSF)框架中,`action`, `actionListener`, 和 `valueChangeListener` 是三个重要的事件处理机制,它们各自在不同的场景下发挥着作用。下面将详细解释这三个概念的区别以及它们在JSF中的应用。 ...

    jsf in Action源码(1-6章)

    《JSF in Action》是JavaServer Faces技术的一本经典实战书籍,涵盖了从基础到高级的全方位内容。书中源代码的前六章包含了JSF的基本概念、组件使用、生命周期、事件处理、表单验证以及与后端数据库交互等多个关键...

    JSF IN ACTION 随书源码 part1

    JSF IN ACTION 随书源码 part1 JSF_IN_ACTION_CODE part1

    JSF实战 JSF_In_Action_Ext.pdf

    ### JSF实战:JavaServer Faces in Action Online Extension #### 核心知识点概览: 1. **JavaServer Faces (JSF) 简介** - JSF 是一个用于构建基于 Java 的 Web 应用程序的标准组件框架。 - 它为开发人员提供了...

    jsf实例jsf实例 JSF学习 JSF jar包 JSF

    jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF

    JSF IN ACTION 随书源码 part2

    JSF IN ACTION 随书源码 part2

    Manning - JavaServer Faces JSF in Action.pdf

    《JavaServer Faces (JSF) in Action》是Manning出版社发布的一本专业书籍,专注于讲解如何使用JavaServer Faces技术来构建高效、可维护的Web应用程序。JSF是一种Java平台上的UI框架,它简化了创建用户界面的过程,...

    JSF In Action 学习一.rar

    在《JSF In Action》这本书中,你可能会学习到以下关键知识点: 1. **JSF架构**:理解JSF的基本工作原理,包括生命周期、事件处理和渲染过程。JSF生命周期分为六阶段,包括恢复视图、应用请求值、处理验证、更新...

Global site tag (gtag.js) - Google Analytics