У меня есть страница для поиска authors
. Он должен показывать информацию об найденном авторе или показывать сообщение, когда автор не найден.Советы по использованию <rich: notifyMessage>
Я пытаюсь использовать <rich:notifyMessage>
, но проблема в том, что когда я его использую, результаты от найденных авторов не отображаются, а также появляется сообщение в правом углу страницы, d хотел бы, чтобы он появился ниже панели, где появятся результаты поиска.
Посмотрите, как я это делаю, есть ли лучший способ сделать это?
XHTML
<h:form>
<br />
<br />
Insert Author
<br />
<br />
<br />
<rich:panel id="panel" style="width:310px">
<f:facet name="header">Search for the author you want to insert</f:facet>
<h:panelGrid columns="3">
Name: <h:inputText value="#{insertAuthorController.nameToSearch}" />
<a4j:commandButton value="Search" action="#{insertAuthorController.searchAuthor()}">
</a4j:commandButton>
</h:panelGrid>
</rich:panel>
<br />
<rich:notifyMessage/>
<rich:dataTable value="#{insertAuthorController.authorListOfMap}" var="result">
<c:forEach items="#{insertAuthorController.variableNames}" var="vname">
<rich:column>
<f:facet name="header">#{vname}</f:facet>
#{result[vname]}
</rich:column>
</c:forEach>
</rich:dataTable>
<br />
<h:commandButton value="Go to insert page" action="#{insertAuthorController.searchAuthor()}" />
</h:form>
Bean
public void searchAuthor() {
this.variableNames.clear();
List<String> uris = new ArrayList<String>();
uris = this.authMapper.searchAuthorUriByName(this.nameToSearch);
if((uris != null) && (!uris.isEmpty())) {
for(String uri : uris) {
Map<String, String> map = new HashMap<String, String>();
String name = this.authMapper.searchNameByAuthorUri(uri);
String email = this.authMapper.searchEmailByAuthorUri(uri);
map.put("URI", uri);
map.put("Nome", name);
map.put("Email", email);
authorListOfMap.add(map);
}
this.addVariableNames();
} else {
FacesContext ctx = FacesContext.getCurrentInstance();
FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Detail","Author not found!"); //FacesMessage has other info levels
ctx.addMessage(null,msg);
}
}
Спасибо!
Thak вам за ответ! Посмотрите, какой компонент вы предлагаете мне для показа уведомления рядом с входным текстом, когда (например) оно обязательно = true, и пользователь не заполняет его? – Luciane
Как я уже сказал, ''. –
Makhiel
Хорошо, спасибо !!!!! – Luciane