现在的位置: 首页 > 综合 > 正文

jsf开发login实例

2013年02月14日 ⁄ 综合 ⁄ 共 4271字 ⁄ 字号 评论关闭
Eclipse3.1、MyEclipse4.0.3、Tomcat
 
打开Eclipse
新建 web 工程,名称为login,j2ee版本为2.4当然2.3也是可以的
 
添加jsf框架,使用1.1.01版本 、URL pattern: *.faces其它设置使用默认值
 
打开WEB-INF目录下的 faces-config.xml 文件
使用工具栏中的工具创建三个页面login.jsp、ok.jsp、error.jsp
使用工具栏中的工具navigation创建页面的关系
 
以下是配置以后生成的配置文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
 
<faces-config >
 <navigation-rule>
  <from-view-id>/login.jsp</from-view-id>
  <navigation-case>
   <from-outcome>success</from-outcome>
   <to-view-id>/ok.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>failure</from-outcome>
   <to-view-id>/error.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/ok.jsp</from-view-id>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/error.jsp</from-view-id>
 </navigation-rule>
</faces-config>
 
创建两个Bean,一个用来处理用户信息的验证,一个是和页面中的数据进行绑定
 
UserValidator.java
package com;
 
public class UserValidator {
 //这是验证用户名和密码的过程
 public String validator(String username,String password){
  if((username==null)||(username.length()<1))
   return "failure";
  if((password==null)||(password.length()<1))
   return "failure";
  if((username.equals("test"))&&(password.equals("test")))
   return "success";
  else
   return "failure";
 }
}
 
LoginBean.java
package com;
 
public class LoginBean {
 
 private String username;
 private String password;
 private UserValidator uv;
 
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public UserValidator getUv() {
  return uv;
 }
 public void setUv(UserValidator uv) {
  this.uv = uv;
 }
 //用户登录过程
 public String login(){
  return uv.validator(username,password);
 }
}
现在按下Ctrl + N 键,使用jsp的向导来配置这两个Bean
选择MyEclipse/WEB-JSF/Managed Bean
Project: login
选中:Open Config File in Editor
Name: UserValidator 就是Bean中的一个,这里的name可以自己起一个,如将第一个字母改为小写userValidator
Class: com.UserValidator
Scope: request
 
点击完成生成配置内容如下:
<managed-bean>
  <managed-bean-name>userValidator</managed-bean-name>
  <managed-bean-class>com.UserValidator</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
 
再次配置另一个Bean,不过这一回增加了一个属性
按下Ctrl + N 键,选择MyEclipse/WEB-JSF/Managed Bean
Project: login
选中:Open Config File in Editor
Name: loginBean
Class: com.LoginBean
Scope: request
点击add按钮
Name: uv 这里的内容为LoginBean中的uv属性,这个可是不能乱填的
Class: 这个不填
点下一步
Property Value: #{userValidator} 这里花括号中的内容为刚才配置的UserValidator的name属性,name属性的第一个字母使用的是小写
 
好,确定,完成
配置文件中新增了如下代码:
<managed-bean>
  <managed-bean-name>loginBean</managed-bean-name>
  <managed-bean-class>com.LoginBean</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  <managed-property>
   <property-name>uv</property-name>
   <value>#{userValidator}</value>
  </managed-property>
 </managed-bean>
 
在这一个bean中,它的uv属性被指定要在运行时注入一个com.UserValidator的实例。
 
现在编写login.jsp中的代码如下:
<%@ taglib uri="http://java.sun.com/jsf/html"&n ... ot;h" %>
<%@ taglib uri="http://java.sun.com/jsf/core"&n ... ot;f" %>
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
  <head>
    <title>Login</title>
  </head>
 
  <body>
    <f:view>
     <h:form>
      <h:panelGrid columns="3">
       <h:outputLabel for="username" value="User Name:" />
       <h:inputText id="username" value="#{loginBean.username}" required="true" />
       <h:message for="username" />
       <h:outputLabel for="password" value="Password:" />
       <h:inputSecret id="password" value="#{loginBean.password}" required="true" />
       <h:message for="password" /> 这里的password要和上一行的id="password"对应才可以返回错误消息
      </h:panelGrid>
      <h:panelGrid>
       <h:panelGroup>
        <h:commandButton value="Login" action="#{loginBean.login}" />
       </h:panelGroup>
      </h:panelGrid>
     </h:form>
    </f:view>
  </body>
</html>
 
修改 index.jsp,代码如下:
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
    <a href="login.faces">Login</a>
  </body>
</html>
修改 ok.jsp,代码如下:
<html>
  <head>
    <title>Login OK!!!</title>
  </head>
  <body>
    Login Ok!!!<br>
  </body>
</html>
修改 error.jsp,代码如下:
<html>
  <head>
    <title>Error!!!</title>
  </head>
  <body>
    Error!!!<br>
  </body>
</html>
好了,代码完成可以进行测试了,输入正确的用户名和密码,提交后进入ok.jsp

抱歉!评论已关闭.