JSF 2.1 トムキャット 7.0
これは依存性注入の間違った使い方ですか?
ページを移動しても問題なく動作します。しかし、「うまくいく」と「正しい」は同じではありません。
このパターンを検索目的にも使用します。リクエストがあり、それを使用して同じページにテーブルを作成したいと思っています。これは可能ですか?
index.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">
<h:head>
<link rel="SHORTCUT ICON" href= "resources/img/onlyT.ico"></link>
<title>title</title>
<h:outputStylesheet library="css" name="compass.css"/>
</h:head>
<h:body>
Login system
<br />
<h:form>
User : <h:inputText value="#{user.username}" />
Password : <h:inputSecret value="#{user.password}" />
<h:commandButton action="#{loginBean.performLogin()}" value="Submit" />
<h:commandButton value="reset" type="reset" />
<h:commandButton value="ChangePsW" action="changePassword"></h:commandButton>
</h:form>
<h:message for="" style="color:red;margin:8px;"/>
</h:body>
</html>
LoginBan.java
@ManagedBean
@RequestScoped
public class LoginBean {
@ManagedProperty(value="#{user}")
private UserBean userBean;
//must povide the setter method
public void setUserBean(UserBean userBean) {
this.userBean = userBean;
}
public LoginBean() {}
public String performLogin(){
//Mi connetto al db
if(userBean.getUsername().equalsIgnoreCase( "mario")){
//effettuo i controlli per stabilire se esiste l'utente
userBean.setRoles("-EE-E-E-E-E-E");
return "/mainPortal/mainPortal";
}
return "/mainPortal/index";
}
}
UserBean.java
@ManagedBean (name="user")
@SessionScoped
public class UserBean implements Serializable {
private String Username;
private String Password;
private String Roles;
/** Creates a new instance of UserBean */
public UserBean() {
}
/**
* @return the Username
*/
public String getUsername() {
return Username;
}
/**
* @param Username the Username to set
*/
public void setUsername( String Username ) {
this.Username = Username;
}
/**
* @return the Password
*/
public String getPassword() {
return Password;
}
/**
* @return the Roles
*/
public String getRoles() {
return Roles;
}
/**
* @param Roles the Roles to set
*/
public void setRoles( String Roles ) {
this.Roles = Roles;
}
/**
* @param Password the Password to set
*/
public void setPassword( String Password ) {
this.Password = Password;
}
パスワードの変更もuserBeanを使用し、彼のchangePasswordBeanを持っています。