我有以下 xhtml 页面,它包含在我的项目中其他页面的主要部分中:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title></title>
</h:head>
<h:form>
<p:menubar>
<p:menuitem value="Home" url="/protected/personal/HomeCalendar.xhtml" icon="ui-icon-home"/>
<p:menuitem value="#{topbarBean.username}" url="#" style="text-decoration: underline" />
<f:facet name="options">
<p:inputText style="margin-right:20px" placeholder="Search" value="#{searchBean.searched}"/>
<p:commandButton action="#{searchBean.search()}" type="submit" icon="ui-icon-search" />
</f:facet>
</p:menubar>
</h:form>
</ui:composition>
这是我写的导航规则:
<navigation-rule>
<from-view-id>/Components/TopBar.xhtml</from-view-id>
<navigation-case>
<from-action>#{searchBean.search()}</from-action>
<from-outcome>searchingResults</from-outcome>
<to-view-id>/protected/SearchResults.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
这是所提到的 Bean:
@RequestScoped
@ManagedBean
public class SearchBean implements Serializable {
private String searched;
private final String resultsOutcome = "searchingResults";
private List<User> users;
private List<Event> events;
@EJB
UserFacade uf;
@EJB
UserManager um;
@EJB
EventFacade ev;
@PostConstruct
public void init(){
try {
setEvents(um.getEventsVisibilityMasked(um.getLoggedUser().getId()));
}
catch (NotFoundException ex) {
Logger.getLogger(SearchBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void setSearched(String searched) {
this.searched = searched;
}
public String getSearched() {
return searched;
}
public void search() {
FacesContext fc = FacesContext.getCurrentInstance();
fc.getApplication().getNavigationHandler().handleNavigation(fc, null, resultsOutcome);
}
public List<User> getUsers(){
return users;
}
public void setUsers(List<User> users){
for(User user:users)
this.users.add(user);
}
public List<Event> getEvents(){
return events;
}
public void setEvents(List<Event> events){
for(Event event:events)
this.events.add(event);
}
}
错误如下:
JSF1064:无法查找或提供资源/protected/personal/searchingResults.xhtml。
该路径未在任何地方指定,如果有帮助的话我有以下结构:
-Index,xhtml
-Web Pages { components , protected}
-components{TopBar.xhtml}
-protected {event,persona,user,SearchResults.xhtml}
-event{eventCreate,eventPage,eventEdit}
-personal{HomeCalendar,ManageSettings,ManageInvitations}
我不明白问题是否涉及导航规则或下一个 xhtml 页面。