Я не думаю, что это проблема JSF с AJAX с формой в форме, потому что у меня есть только 1 форма.CommandLink с JSF Ajax требуется 2 клика
Я посмотрел на темы о Ajax и JSF-рендеринге, и я попробовал несколько решений без везения.
Кто-нибудь видел, что, вероятно, очевидно, что мне не хватает :-)
Благодарности
index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html 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:p="http://primefaces.org/ui">
<h:head>
<title>Manual</title>
<h:outputStylesheet name="style.css" library="css" />
</h:head>
<h:body>
<div id="page">
<h:form id="myform">
<div class="header" >
<h:graphicImage library="img" name="Logo.gif" alt="Logo"/>
<h1>Manual</h1>
</div>
<div class="menu">
</div>
<div class="nav">
<h:outputText value="Navigation 1"/><br/>
<p:commandLink value="Chapter100" action="#{contentBean.BuildContent}" update="content" >
<f:ajax process="@this" render=":content" />
</p:commandLink>
<!-- Add NewLine between links -->
<h:outputText value=" " />
</div>
</h:form>
<div class="mycontent">
<h:panelGroup id="content">
<h:outputText value="#{contentBean.content}" >
</h:outputText>
</h:panelGroup>
</div>
</div>
</h:body>
</html>
Bean
@ManagedBean(name="contentBean")
@ViewScoped
public class ContentBean implements Serializable{
private List<String> lTocInfo = new ArrayList();
private String content = "Steve Newer 002 Content";
public String getContent()
{
return content;
}
public void setContent(String content) {
this.content = content;
}
public void BuildContent() throws Exception
{
this.setContent("Steve made it back from database");
}
}
только думаю, я считаю неправильным является '<е: Аякса процесса =«@ это» render = ": content" /> '. Вы в основном смешиваете JSF и PF: JSF '' имеет 'execute' и' render', PF '' имеет 'process' и' update'. Кроме того, PF имеет свою собственную структуру AJAX, предназначенную для использования с ее компонентами, поэтому в этом случае вы должны либо использовать '', либо использовать ярлыки' process' и 'update' атрибутов' '. –
skuntsel