Ich benötige derzeit meine React App mit Spring Boot. Es funktioniert für die Root-URL localhost:8080/
, aber natürlich wird keine der Unterstrecken vom Spring Controller erkannt.React-Router Probleme beim Bedienen Reagiere App mit Spring Boot
Ich bin mir nicht sicher, wie man das React Routing und Spring Request Mapping ohne Hard-Coding in jeder möglichen Route auf index.html
ausrichten kann - und dann einige der Routen haben variable Unterrouten.
Hier ist meine HomeController
, die die index.html
@Controller
public class HomeController {
@RequestMapping(value = "/")
public String index() {
return "index.html";
}
}
Hier ist das Routing in meinem
const Root = ({ store }) => (
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRedirect to="users"/>
<Route path="/org" component={OrgSearch}>
{<Route path="/org/:orgId" component={Org}/>}
</Route>
<Route path="/users" component={UserSearch}>
{<Route path="https://stackoverflow.com/users/:userId" component={User} />}
</Route>
</Route>
</Router>
</Provider>
)
sehr geschätzt Jede Hilfe Reagieren App machen dient!
EDIT: Ich habe versucht, einige Wildcard-Funktionalität hinzufügen, und es präsentiert sich ein seltsames Verhalten. Hier ist der aktualisierte Code für die HomeController
.
@Controller
public class HomeController {
@RequestMapping(value = {"/", "https://stackoverflow.com/users/**", "/org/**"})
public String index() {
return "index.html";
}
}
kann ich /
und /users
zugreifen, aber nicht /users/
oder /users/2545
.
Hier ist der Fehler, wenn ich versuche, auf letztere zuzugreifen.
2017-04-14 09:21:59.896 ERROR 58840 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular view path [index.html]: would dispatch back to the current handler URL [/users/index.html] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)] with root cause
javax.servlet.ServletException: Circular view path [index.html]: would dispatch back to the current handler URL [/users/index.html] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)
at org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:205) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:145) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980) ~[spring-webmvc-4.3.7.RELEASE.jar:4.3.7.RELEASE]