Ich habe ein seltsames Problem, ich bin sicher, dass es mit h verwandt ist: Form Placement-Tags. Ich habe eine Tabelle, über der Tabelle habe ich ein Suchformular, wo ich einige Tags setzen kann, zum Beispiel Name oder Nachname und danach wird die Tabelle aktualisiert. Und es hat funktioniert! Aber aus irgendwelchen Gründen hört es einfach auf zu arbeiten und ich habe keine Ahnung warum. Um jetzt die Ergebnisse der Suche zu überprüfen, muss ich die Seite aktualisieren oder die Seitennummerierung in der Tabelle von 10 auf 15 ändern, danach werden die Ergebnisse erscheinen. Hier ist ein Code:Tabelle will nicht nach Eingabe Such-Tags aktualisieren
xhtml:
<h:form>
<div class="row">
<div class="panel-heading text-center">
<div class="bootstrap-filestyle input-group inn">
<div class="search-criteria" style="width: 500px">
<h:inputText value="#{clientBean.tags}" styleClass="form-control"
type="text">
<f:passThroughAttribute name="placeholder"
value="Imię, nazwisko, adres..." />
</h:inputText>
</div>
<p:commandButton type="submit" style="float:left"
styleClass="btn btn-primary" value="Szukaj"
actionListener="#{clientBean.getAllClients()}">
<i class="icon-search icon-white"></i>
</p:commandButton>
</div>
</div>
</div>
<h:form>
<p:dataTable id="clientsTable" style="white-space: nowrap"
var="client" value="#{clientBean.getAllClients()}" paginator="true"
rows="15"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="10,15">
<p:column headerText="Imię">
<h:outputText value="#{client.name}" />
</p:column>
<p:column headerText="Nazwisko">
<h:outputText value="#{client.lastName}" />
</p:column>
<p:column headerText="Numer telefonu">
<h:outputText value="#{client.phoneNumber}" />
</p:column>
<p:column headerText="Adres">
<h:outputText value="#{client.address}" />
</p:column>
<p:column>
<a href="klienci/#{client.ID}"
class="btn btn-success edit resized-font"><span
class="glyphicon glyphicon-pencil"></span> Edytuj</a>
<a href="klienci/#{client.ID}"
class="btn btn-danger delete resized-font"><span
class="glyphicon glyphicon-trash"></span> Usuń</a>
<a href="klienci/#{client.ID}" class="btn btn-primary resized-font"><span
class="glyphicon glyphicon-book"></span> Informacje</a>
</p:column>
</p:dataTable>
</h:form>
</h:form>
wichtigen Code von ClientBean:
private String tags;
public Set<Client> getAllClients() {
if (tags == null) {
Set<Client> clients = new HashSet<Client>(clientDao.findAll());
return clients;
}
return getClients();
}
public Set<Client> getClients() {
Set<Client> mergedClientSet = new HashSet<>();
String[] tags = getTags().split(" ");
for(int i=0; i<tags.length; i++){
mergedClientSet.addAll(searchService.getClientWithParameters(tags[i]));
}
return mergedClientSet;
}
public String getTags() {
return tags;
}
public void setTags(String tags) {
this.tags = tags;
}