Я работаю над своим окончательным проектом курса и использую JSF с AJAX, но у меня есть некоторые ошибки.
В настоящее время я использую JSF 2.0 и Fancybox, подключаемый модуль jQuery. На данной странице у меня есть одна таблица данных, которая загружает мой контент. Каждая строка этой таблицы имеет ссылку, которая открывает страницу редактирования для выбранной строки. Обратите внимание, что при открытии любой новой страницы на экране появляется только модальное окно.
Итак, когда пользователь щелкнет строку, появится «страница редактирования», но она будет отображаться как модальная (вот почему я использую Fancybox).
Вот мой код для этого:
<h:dataTable id="minhaTabela" styleClass="table table-hover" var="disciplina" value="#{disciplinaMBean.listaDisciplinas}" selection="#{disciplinaMBean.disciplinaSelecionada}" selectionMode="single" >
<h:column>
<a class="various fancybox.ajax">
<f:facet name="header">Name</f:facet>
<h:outputText value="#{disciplina.nome}" />
</a>
</h:column>
</h:dataTable>
(...)
$(".various").fancybox({
maxWidth : 400,
maxHeight : 125,
fitToView : false,
autoSize : false,
width : 400,
height : 125,
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
ajax : {
type : "POST",
url : "edit.xhtml",
data : { idDisciplina : '#{disciplinaMBean.disciplinaSelecionada.id}' },
dataType: "html"
}
});
И мой edit.xhtml (пока не динамический, это для теста):
<form role="form">
<div class="form-group">
<label for="nome">Nome:</label>
<input type="text" class="form-control adicionar" id="nome" />
<br />
<a type="button" href="#" id="excluir" class="btn btn-md btn-danger pull-left">Excluir</a>
<a type="button" href="#" id="enviar" class="btn btn-lg btn-success pull-right">Salvar</a>
<br />
</div>
</form>
Когда я пытаюсь щелкнуть строку, Fancybox открывает модальное окно, но я получаю следующую ошибку:
Если я удалю Ajax в Fancybox...
(и добавьте href="edit.xhtml" к моей ссылке)
<h:column>
<a class="various fancybox.ajax" href="edit.xhtml">
<f:facet name="header">Name</f:facet>
<h:outputText value="#{disciplina.nome}" />
</a>
</h:column>
(...)
$(".various").fancybox({
maxWidth : 400,
maxHeight : 125,
fitToView : false,
autoSize : false,
width : 400,
height : 125,
closeClick : false,
openEffect : 'none',
closeEffect : 'none'
});
Моя страница загружается, но как я могу отправить информацию для обработки информации edit.xhtml? Пользуясь случаем, это лучший способ сделать то же самое? Я не знаю, правильно ли я поступаю, потому что я не нашел ни одного учебника или вопроса, подобного этому, в Google.