Проблема с EJB / JSF2.0 - PullRequest
       23

Проблема с EJB / JSF2.0

0 голосов
/ 16 октября 2011

В настоящее время я практикую JSF и EJB, но сейчас я не могу получить страницу, чтобы показать запрашиваемую информацию, здесь есть текст ввода и кнопка отправки (input.xhtml), и ожидаемый результат - показать отправленный текст .

/input.xhtml @16,56 value="#{welcome.name}": Target Unreachable, identifier 'welcome' resolved to null

Я пытался все исправить, это часть input.xthml

        <ui:define name="content">
            <h:form>
                <h:panelGrid columns="3">
                    <h:outputText value="Name:"/>
                    <h:inputText value="#{welcome.name}" title="name" id="name"
                                 required="true" />
                    <h:message for="name" style="color: red"/>
                </h:panelGrid>
                <h:commandButton action="show" value="submit"/>
            </h:form>

        </ui:define>

    </ui:composition>

Это боб.

@ManagedBean
@RequestScoped
public class Welcome {
    private String name;
    private String message;

    public String getMessage() {
        return "Hello " + name;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

Ответы [ 2 ]

3 голосов
/ 16 октября 2011

Код выглядит нормально, и он должен работать просто отлично. Я только не вижу, как это связано с JPA и EJB. У вас будет точно такая же проблема, когда вы удалите JPA / EJB из своего тестового примера, верно? Вы можете просто оставить эти теги и эту деталь вне рассмотрения.

Что касается конкретной проблемы, поскольку вы пропустили объявления import, я могу, учитывая симптомы, только предположить, что вы фактически импортируете @ManagedBean из пакета javax.annotation вместо javax.faces.bean пакет . Первый не заставит JSF управлять бином, но последний сделает. Проверьте и исправьте ваш импорт. Обратите внимание, что @RequestScoped также должен быть из того же пакета , а не из javax.enterprise.context пакета .

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class Welcome {
    // ...
}
0 голосов
/ 20 января 2014
write like this

@ManagedBean(name="welcome")
@RequestScoped
public class welcome implements Serializable {
private String name;
}

In html write like this
<h:inputText value="#{welcome.name}" title="name" id="name"
                                 required="true" />
...