navigation-Regel bewirkt, dass JSF1064: kann Nicht finden, oder als Ressource
Habe ich die folgende xhtml-Seite, die verpackt ist in den großen Teil der anderen Seiten in meinem Projekt:
<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>
Dies ist die Navigations-Regel, die habe ich schon schrieb:
<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>
und dieser die genannten 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);
}
}
Den Fehler ist folgende:
JSF1064: kann Nicht finden, oder dienen der Ressource, /protected/private/searchingResults.xhtml.
Dieser Weg ist nicht überall angegeben, wenn es hilfreich sein kann, habe ich die folgende Struktur :
-Index,xhtml
-Web Pages { components , protected}
-components{TopBar.xhtml}
-protected {event,persona,user,SearchResults.xhtml}
-event{eventCreate,eventPage,eventEdit}
-personal{HomeCalendar,ManageSettings,ManageInvitations}
Ich verstehe nicht, wenn das problem bezüglich der navigation-Regel oder die nächste xhtml-Seite.
InformationsquelleAutor LeoCella | 2015-01-22
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass kann passieren, wenn JSF können nicht, finden Sie die passenden Navigations-Regel. Werde es dann wechseln Sie zur impliziten navigation. I. e. das Ergebnis wird als die eigentlichen view-ID, die relativ zum aktuellen Kontext.
Offenbar der aktuellen view-ID, die sitzen irgendwo in
/protected/personal
. Ein Ergebnis dersearchingResults
die nicht mit jedem Navigations-Regel bewirkt eine implizite navigation zu/protected/personal/searchingResults.xhtml
.Du hast 2 Optionen:
Update der aktuellen view-ID. Die
<from-view-id>/Components/TopBar.xhtml</from-view-id>
ist offensichtlich falsch. Finden Sie heraus, die richtige Sie wie folgt vor:Es ist in der Regel in der passenden Kontext-relative URI in der Adressleiste, solange Sie nicht mit POST-für-Seite-zu-Seite-navigation. Verwenden Sie diesen Wert in
<from-view-id>
.Loszuwerden navigation Fälle insgesamt und verlassen Sie sich auf implizite navigation. Entfernen Sie die
<navigation-case>
insgesamt vonfaces-config.xml
und ändern das Ergebnis Wert-und action-Methode wie folgt:Den
NavigationHandler
Ansatz war auch ziemlich ungeschickt. Sogar mit navigation Fälle, nur wieder das Ergebnis geradezu statt das hantieren mitNavigationHandler
.Siehe auch: