Я где-то читал, что лучше использовать CDI @Named
вместо JSF @ManagedBean
из-за CDI, поэтому я пытаюсь преобразовать часть своего кода. Я пытаюсь использовать @Named
в JSF, но он всегда недоступен. При использовании @ManagedBean
проблем не было.
Я использую его как @ManagedBean
, как показано ниже
CustomerBacking.java
package com.wordpress.marczykm.backing;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named("customer")
@RequestScoped
public class CustomerBacking {
@EJB
private CustomerService customerService;
public CustomerBacking() {
}
public String addCustomer(Customer customer) {
customerService.addCustomer(customer);
return "customer_overview";
}
public Customer getCustomer(){
return customerService.getCustomer();
}
}
index.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>EJB 3.0 Test</title>
</h:head>
<h:body>
<h:outputText value="#{customer.firstname}"/>
<h:form>
<h:outputText value="Imię"/>
<h:inputText id="firstname" name="firstname" value="#{customer.firstname}" /><br/>
<h:outputText value="Nazwisko"/>
<h:inputText id="lastname" name="lastname" value="#{customer.lastname}" /><br/>
<h:commandButton value="Dodaj" actionListener="#{customer.addCustomer}"/>
</h:form>
</h:body>
</html>
import javax.enterprise.context.RequestScoped
. Также ваш код резервного компонента и xhtml не совпадают, но я предполагаю, что это ошибка копирования и вставки. - person mabi   schedule 12.02.2014@Named("customer")
), но все же после нажатия CommandButton у меня есть ошибка Target Unreachable, идентификатор 'customer' преобразован в null - person Marcin Marczyk   schedule 12.02.2014/WEB-INF/beans.xml
в папке веб-контента? - person BalusC   schedule 12.02.2014<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> </beans>
- person Marcin Marczyk   schedule 12.02.2014@Named
вы объявляете класс вспомогательного компонента как управляемый компонент CDI. С помощью@ManagedBean
вы объявляете класс вспомогательного компонента как управляемый компонент JSF. Вы понимаете суть? - person BalusC   schedule 12.02.2014