Jsf 无法访问目标,标识符';注册';已解析为空
我正在使用jsf开发一个web应用程序,我正在尝试注册用户,但是我遇到了一些问题。服务器告诉我 500-内部服务器错误:无法访问目标,标识符“注册”解析为空 代码如下: registration.xhtml:Jsf 无法访问目标,标识符';注册';已解析为空,jsf,cdi,Jsf,Cdi,我正在使用jsf开发一个web应用程序,我正在尝试注册用户,但是我遇到了一些问题。服务器告诉我 500-内部服务器错误:无法访问目标,标识符“注册”解析为空 代码如下: registration.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/
<?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://xmlns.jcp.org/jsf/html"
xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
<h:head>
<title>Registration</title>
<link rel="stylesheet" href="css/registration.css"/>
<link rel="stylesheet" href="css/application.css"/>
<link href='http://fonts.googleapis.com/css?family=Dosis' rel='stylesheet' type='text/css'/>
<link href='http://fonts.googleapis.com/css?family=Roboto+Condensed' rel='stylesheet' type='text/css' />
</h:head>
<h:body>
<div id='menuBar'>
<ul>
<li><a href='index.xhtml'><span>Home</span></a></li>
<li><a href='registration.xhtml'><span>Register</span></a></li>
<li><a href='#'><span>About</span></a></li>
</ul>
</div>
<div class='registration'>Registration</div>
<div class='form-div'>
<h:form class='form'>
<div class='field'>
<h:outputLabel a:id='fieldName' for="name">Name:</h:outputLabel>
<h:inputText id='name' value="#{registration.user.name}" class='feedback-input'/>
</div>
<div class='field'>
<h:outputLabel a:id='fieldName' for="surname">Surname:</h:outputLabel>
<h:inputText id='surname' value="#{registration.user.surname}" class='feedback-input'/>
</div>
<div class='field'>
<h:outputLabel a:id='fieldName' for="username">Username:</h:outputLabel>
<h:inputText id='username' value="#{registration.user.username}" class='feedback-input'/>
</div>
<div class='field'>
<h:outputLabel a:id='fieldName' for="email">Email:</h:outputLabel>
<h:inputText id='email' value="#{registration.user.email}" class='feedback-input'/>
</div>
<div class='field'>
<h:outputLabel a:id='fieldName' for="password">Password:</h:outputLabel>
<h:inputText id='password' value="#{registration.user.password}" class='feedback-input'/>
</div>
<div class='field'>
<h:outputLabel a:id='fieldName' for="confpassword">Confirm Password:</h:outputLabel>
<h:inputText id='confpassword' class='feedback-input'/>
</div>
<div class='submit'>
<h:commandButton type='submit' value='REGISTER' a:id='button-reg' action="#{registration.register()}"/>
</div>
</h:form>
</div>
</h:body>
</html>
Register Validation.java
package it.polimi.business.meteocal.boundary;
import it.polimi.meteocal.business.control.RegisterValidation;
import it.polimi.meteocal.business.entity.User;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named
@RequestScoped
public class Registration {
@EJB
private RegisterValidation rv;
private User user;
public Registration() {}
public User getUser() {
if (user == null) {
user = new User();
}
return user;
}
public void setUser(User user) {
this.user = user;
}
public String register() {
rv.createUser(user);
return "/index.xhtml?faces-redirect=true";
}
}
package it.polimi.meteocal.business.control;
import it.polimi.meteocal.business.entity.User;
import java.security.Principal;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class RegisterValidation {
@PersistenceContext
EntityManager em;
@Inject
Principal principal;
public void createUser(User user) {
em.persist(user);
}
public void unregister() {
em.remove(getLoggedUser());
}
public User getLoggedUser() {
return em.find(User.class, principal.getName());
}
}
你能帮我吗?没有明显的症状。请考虑提供可能导致异常的不同罪魁祸首的完全异常堆栈跟踪。您的bean在哪里?XML?您是否错误地访问了在您的实际代码中通过关联的XHTML页面中的EL中的某个地方使用该名称“代码>注册<代码/代码>(以大写字母开头)?从问题的当前形式来看,除此之外,没有其他问题。正如其他人所指出的,请确保您有一个beans.xml文件来在项目中启用CDI,并且您没有在任何Facelets文件中使用
{Registration}
。您能够解决这个问题吗?