Работя върху финалния проект на курса си и използвам 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="/bg#" id="excluir" class="btn btn-md btn-danger pull-left">Excluir</a>
<a type="button" href="/bg#" id="enviar" class="btn btn-lg btn-success pull-right">Salvar</a>
<br />
</div>
</form>
Когато се опитам да щракна в ред, Fancybox отваря модала, но получавам следната грешка:
Ако изтрия Ajax във Fancybox...
(и добавете href="/bgedit.xhtml" към моята връзка)
<h:column>
<a class="various fancybox.ajax" href="/bgedit.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.