所以这是我第一次构建Java EE应用程序。我看了很多教程,但大多数都在使用eclipse。
所以问题是:
<h:panelGroup layout="block">
<p:commandButton ajax="false" action="#{loginBean.login()}"
styleClass="btn btn-info" value="Login" />
</h:panelGroup>
当我启动Wildfly服务器并尝试访问登录页面时。如果没有 我得到登录方法后的括号:
班级&#39; LoginBean&#39;没有登录的属性。
如果我用括号试试。初始化页面时调用该方法,并且我得到username和pass的值为null的异常。 当我评论方法内容时,我得到了正确初始化的页面,但发生了另一个问题。 JSF组件如:
<h:panelGroup>
<h3 class="loginTitle">#{msgs['default.title']}</h3>
</h:panelGroup>
渲染正确,但Primefaces组件
<h:panelGroup layout="block">
<p:inputText value="#{loginBean.username}" id="username"
styleClass="loginInputField" required="true"
requiredMessage="Username is required field">
<p:watermark for="username" value="Username" />
</p:inputText>
</h:panelGroup>
以0px高度和宽度渲染。
这是我的LoginBean.java
公共类LoginBean实现Serializable {
private static final String SUCCESS_LOGIN_REDIRECT = "/pages/success?faces-redirect=true";
private static final String LOGIN_PAGE_REDIRECT = "/pages/login?faces-redirect=true";
private static final long serialVersionUID = 1L;
@Inject
private HttpServletRequest request;
private String username;
private String password;
@PostConstruct
public void init() {
//TODO
}
public String login() {
username = "";
password = "";
if(StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Invalid Credentials"));
return "";
} else if ("admin".equals(username) && "123".equals(password)) {
request.getSession().setAttribute("LOGGED_USER", username);
return SUCCESS_LOGIN_REDIRECT;
}
MessageUtils.addErrorMessage("login.error.invalid.credentials");
return "";
}
public String logout() {
request.getSession().invalidate();
return LOGIN_PAGE_REDIRECT;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
最后这是我的项目结构https://github.com/M-Veselinov/Java-EE 我认为我在使用web.xml或其他配置文件时出错了,但我不知道是什么。 我会感激一些帮助。感谢。
客户来源:
<p:inputtext id="username" styleclass="loginInputField" required="true" requiredmessage="Username is required field">
<p:watermark for="username" value="Username"></p:watermark>
</p:inputtext>