h:selectManyChexkbox`s <f: ajax event = "click" слушатель не срабатывает и выдает ошибку

Я хочу запустить прослушиватель изменения событий, когда пользователь выбирает / отменяет выбор чего-либо в h:selectManyCheckbox, если он оставляет его в покое, ничего не должно происходить.

Мой xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html lang="en" 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"
xmlns:c="http://java.sun.com/jsp/jstl/core">

<h:head>
<link rel="stylesheet" type="text/css"
    href="/juritest/resources/css/style.css" />
<script type="text/javascript"
    src="/juritest/resources/js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="/juritest/resources/js/menu.js"></script>
</h:head>

<h:body>
<ui:composition template="../../templates/gridsTemplate.xhtml">
    <ui:define name="content">
        ...
                <h:panelGroup style="text-align: left">
                    <hr />
                    <h:selectManyCheckbox
                        value="#{gridPopUpBean.oneQuestionUserAnswers}" 
                        layout="pageDirection">
                        <f:selectItem itemValue="a"
                            itemLabel="#{gridPopUpBean.currentQuestion.a}" />
                        <f:selectItem itemValue="b"
                            itemLabel="#{gridPopUpBean.currentQuestion.b}" />
                        <f:selectItem itemValue="c"
                            itemLabel="#{gridPopUpBean.currentQuestion.c}" />
                        <f:ajax event="click" listener="#{gridPopUpBean.changeListener()}"/>
                    </h:selectManyCheckbox>
                </h:panelGroup>
   ...

Я получаю сообщение об ошибке: "Один или несколько ресурсов имеют цель" head ", но в представлении не определен компонент" head "". У меня не просто , я читал, что это была возможная проблема.

И фрагмент из бобов:

public void changeListener(ValueChangeEvent e) {

    change = true;
}   

Я пробовал без

<h:selectManyCheckbox
                        value="#{gridPopUpBean.oneQuestionUserAnswers}" valueChangeListener="#{gridPopUpBean.changeListener()}" onclick="submit()"
                        layout="pageDirection">
                        <f:selectItem itemValue="a"
                            itemLabel="#{gridPopUpBean.currentQuestion.a}" />
                        <f:selectItem itemValue="b"
                            itemLabel="#{gridPopUpBean.currentQuestion.b}" />
                        <f:selectItem itemValue="c"
                            itemLabel="#{gridPopUpBean.currentQuestion.c}" />
                        <f:ajax event="click" listener="#{gridPopUpBean.changeListener()}"/>
                    </h:selectManyCheckbox>

но без удачи...

1 ответ

Решение

Один или несколько ресурсов имеют цель "head", но в представлении не определен компонент "head". "У меня есть , а не просто , я читал, что это была возможная проблема.

Что-нибудь снаружи <ui:composition> игнорируется Если вам нужно <h:head>нужно перейти в мастер шаблон, gridsTemplate.xhtml (или любой из его родительских шаблонов).

Кроме того, если вы не используете визуальный редактор для своих файлов XHTML (например, Dreamweaver), тогда я настоятельно рекомендую прекратить размещать какой-либо контент вне <ui:composition>в противном случае вы продолжаете путать себя.

Смотрите также:


<f:ajax event="click" listener="#{gridPopUpBean.changeListener()}"/>

public void changeListener(ValueChangeEvent e) {

Ты путаешь valueChangeListener с <f:ajax listener>, ValueChangeEvent Аргумент применим только к valueChangeListener атрибут UIInput составная часть. Избавьтесь от этого аргумента.

public void changeListener() {

Смотрите также:


Не связанные с конкретной проблемой, вы правильно использовали click (хотя вы можете смело пропустить это вообще), но название вашего вопроса упоминает change и это действительно неправильное событие для флажка и переключателя.

Смотрите также:

Другие вопросы по тегам