0
Springブートアプリケーションで404エラー(またはその他のエラー)が発生したユーザーに、Vaadinレンダリングページを表示しようとしています。Springブートで404エラーのVaadin UIを表示するにはどうすればよいですか?
特に、URLがどのUIとも一致しない場合は、このページを提供したいと考えています。複数のUIがすべて自分のパスにマップされているため、ユーザーがUIに属していないパスを訪問すると404ページが表示されます。
私は「/エラー」にマッピングされるUI定義された非常に単純なアプローチを試みた:)(404エラーをトリガする場合、INITを
@Widgetset("server.AeriWidgetset")
@SpringUI(path = "/error")
public class ErrorUI extends UI {
@Override
protected void init(VaadinRequest request) {
Label lblError = new LabelBuilder().withValue("This is an error").build();
VerticalLayout layout = new MVerticalLayout().with(lblError).withMargin(true);
setContent(layout);
}
}
をメソッドが呼び出されるが、私
{"v-uiId":4,"uidl":"{\"Vaadin-Security-Key\":\"118c54bc-5ce8-421a-9103-d71e11bf40d9\",\"syncId\": 0, \"resynchronize\": true, \"clientId\": 0, \"changes\" : [[\"change\",{\"pid\":\"39\"},[\"0\",{\"id\":\"39\",\"location\":\"http:\\/\\/localhost:9002\\/asd\"}]]], \"state\":{\"39\":{\"localeServiceState\":{\"localeData\":[{\"name\":\"de_DE\",\"monthNames\":[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"],\"shortMonthNames\":[\"Jan\",\"Feb\",\"Mär\",\"Apr\",\"Mai\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Okt\",\"Nov\",\"Dez\"],\"shortDayNames\":[\"So\",\"Mo\",\"Di\",\"Mi\",\"Do\",\"Fr\",\"Sa\"],\"dayNames\":[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],\"firstDayOfWeek\":1,\"dateFormat\":\"dd.MM.yy\",\"twelveHourClock\":false,\"hourMinuteDelimiter\":\":\",\"am\":null,\"pm\":null}]},\"theme\":\"aeri\",\"height\":\"100.0%\",\"width\":\"100.0%\",\"registeredEventListeners\":[\"clientConnectorDetach\"]},\"40\":{\"spacing\":true,\"childData\":{\"41\":{\"alignmentBitmask\":5,\"expandRatio\":0}},\"marginsBitmask\":15,\"width\":\"100.0%\"},\"41\":{\"text\":\"This is an error\",\"width\":\"100.0%\"}}, \"types\":{\"39\":\"0\",\"40\":\"1\",\"41\":\"2\"}, \"hierarchy\":{\"39\":[\"40\"],\"40\":[\"41\"]}, \"rpc\" : [], \"meta\" : {\"repaintAll\":true}, \"resources\" : {}, \"typeMappings\" : { \"com.vaadin.ui.UI\" : 3 , \"com.vaadin.server.AbstractClientConnector\" : 4 , \"com.vaadin.ui.AbstractSingleComponentContainer\" : 5 , \"com.vaadin.ui.AbstractComponent\" : 6 , \"com.vaadin.ui.AbstractLayout\" : 7 , \"org.vaadin.viritin.layouts.MVerticalLayout\" : 1 , \"com.vaadin.ui.VerticalLayout\" : 8 , \"com.ctrlflow.aer.server.ui.ErrorUI\" : 0 , \"com.vaadin.ui.Label\" : 2 , \"com.vaadin.ui.AbstractComponentContainer\" : 9 , \"com.vaadin.ui.AbstractOrderedLayout\" : 10 }, \"typeInheritanceMap\" : { \"3\" : 5 , \"5\" : 6 , \"6\" : 4 , \"7\" : 9 , \"1\" : 8 , \"8\" : 10 , \"0\" : 3 , \"2\" : 6 , \"9\" : 6 , \"10\" : 7 }, \"timings\":[1448, 2]}"}
私がエラーページに直接行くと、それはうまくレンダリングされます。
Vaadinで404または他のエラーページをレンダリングするにはどうすればよいですか?
私はこれが私のニーズのすべてのために働くだろうとは思わない:よう
何か。私が理解しているように、ナビゲータはUI固有のものです。私はいくつかのUIをさまざまなパスにマッピングしています。 * example.org/firstUI *と* example.org/secondUI *。フラグメント(UIの背後にあるURL部分)が不明な場合、ソリューションにエラービューが表示されます。私は(また)URLが存在しないUIを参照する場合に興味があります。 * example.org/unknownUI * –
複数のアプリケーションを使用している場合は、実際に複数のアプリケーションを使用しています。私は代わりにビューを使用することを検討することをお勧めします(これはあなたのアプリケーションではサブUIと見ることができます)。 –