Вывод текста в формате JSF 2.0? - PullRequest
0 голосов
/ 16 марта 2012

Я новичок в JSF и хочу потратить текст, когда действие успешно выполнено. Но вывод текста, это не когда действие выполняется успешно.

Вот представление (deactivatePerson.xhtml):

<h:outputText value="#{msg.personIsDeactivate}" rendered="#{isPersonDeactivate}" />
<h:form>
    <h:commandButton action="#{controller.deactivate}" value="#{msg.deactivate}" />
</h:form>

Вот управляемый компонент:

@ManagedBean
@SessionScoped
public class Controller { 
    private boolean isPersonDeactivate = false;

    public String deactivate() {
        isPersonDeactivate = false; // Deactivate process...
        isPersonDeactivate = true;
        return "persondeactivate";
    }

    //Getter and Setter
}

Вот это faces-config.xml:

<navigation-rule>
    <navigation-case>
        <from-outcome>persondeactivate</from-outcome>
        <to-view-id>/deactivatePerson.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>

Может кто-нибудь сказать мне, что я здесь не так делаю?

1 Ответ

2 голосов
/ 16 марта 2012

Вы забыли сослаться на него как на свойство управляемого компонента #{controller}. Непонятно, как выглядит ваш получатель, но в логических свойствах получателю должен быть указан префикс is вместо get. Само имя свойства предпочтительно не должно иметь префикса is. Это скорее должно быть глагольное утверждение.

Таким образом, тем более:

private boolean personDeactivated;

public boolean isPersonDeactivated() {
    return personDeactivated;
}

Тогда вы можете ссылаться на него следующим образом:

<h:outputText ... rendered="#{controller.personDeactivated}" />

Не относящиеся к конкретной проблеме, случаи навигации излишни, так как новая неявная навигация JSF 2.0. Просто позвольте вашему методу действия вернуть "deactivatePerson", и он перейдет к правильному представлению без необходимости <navigation-case>. Убедитесь, что вы читаете правильные целевые ресурсы JSF 2.x, а не целевые ресурсы JSF 1.x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...