下面是登陆主页面的代码,可以看到是把用户的信息存入到了user这个javabean中,页这个用户信息的javabean直接用注入的方式就可以在DAO层得到了(不像网上的一些例子是直接把DAO的作用也写在了Javabean中,网上一把的这样的做法。),这样注入可以把user的信息传到你想到的各个层。同理login.loginAction把登陆的动作也脱离出来了,不必非要写在JavaBean中。
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>JSF</title>
</head>
<body>
<f:view>
<h:form>
<h3>用户登陆</h3>
用户名: <h:inputText value="#{user.userName}"></h:inputText><br>
密码: <h:inputSecret value="#{user.userPwd}"></h:inputSecret><br>
<h:commandButton action="#{login.loginAction}" value="登陆"></h:commandButton>
</h:form>
</f:view>
</body>
</html>
UserJava的代码:
package com.jsf.bean;
import java.io.Serializable;
/**
* UserBean
*
* @author Shuai.yang
* @date 2007-9-7
* @version 1.0
*/
public class UserBean implements Serializable{
/**
*
*/
private static final long serialVersionUID = -502898601597384551L;
private String userName;
private String userPwd;
/**
* @return Returns the userPwd.
*/
public String getUserPwd() {
return userPwd;
}
/**
* @param userPwd
* The userPwd to set.
*/
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
/**
* @return Returns the userName.
*/
public String getUserName() {
return userName;
}
/**
* @param userName
* The userName to set.
*/
public void setUserName(String userName) {
this.userName = userName;
}
}
但是网上大部份的做法是把下面这段代码给加到这个普通的JavaBean中了:
public String loginAction() {
if (userName.equals("a") && userPwd.equals("a")) {
return "welcome";
}
return "false";
}
这样做层次很差的。