Я пытаюсь создать очень простое приложение Spring Boot 1.3.3 с Thymeleaf и встроенным Tomcat с использованием OpenUI5 в качестве клиентской библиотеки javascript UI ... , но я не могу заставить OpenUI5 загружать данные -sap-щ-resourceroots. Возможно ли это?OpenUI5 с Spring Boot Web - могут ли они работать вместе?
Я начал с создания start.spring.io и создания проекта maven с зависимостями Web и Thymeleaf, а затем добавлен в базовую структуру OpenUI5 с представлением XML. Я последовал за следующие учебные пособия:
я в конечном итоге со следующей структурой проекта:
root
├── src
│ ├── main
│ │ ├── java
│ │ │ └── myPackage
│ │ │ ├── controllers
│ │ │ │ └── LandingPageController.java
│ │ │ └── Application.java
│ │ └── resources
│ │ ├── application.properties
│ │ ├── static
│ │ │ └── webapp
│ │ │ └── view
│ │ │ └── App.view.xml
│ │ └── templates
│ │ └── landingPage.html
│ └── test
│ └── java
│ └── myPackage
│ └── ApplicationTests.java
│
└── pom.xml
Несмотря на то, что это все в основном стандарт из этих учебных пособий, для полнота, я включу свой исходный код:
Application.java:
package myPackage;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
LandingPageController.java:
package myPackage.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/")
public class LandingPageController {
@RequestMapping(method=RequestMethod.GET)
public String redirect() {
return "landingPage";
}
}
landingPage.html:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="utf-8" />
<title>SAPUI5 Walkthrough</title>
<script
id="sap-ui-bootstrap"
src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-libs="sap.m"
data-sap-ui-compatVersion="edge"
data-sap-ui-preload="async"
data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./"
}'>
</script>
<script>
sap.ui.getCore().attachInit(function() {
sap.ui.xmlview({
viewName : "sap.ui.demo.wt.view.App"
}).placeAt("content");
});
</script>
</head>
<body class="sapUiBody" id="content">
</body>
</html>
App.view.xml:
<mvc:View
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc">
<Text text="Hello World"/>
</mvc:View>
Мое приложение Файл .properties empty, а pom.xml - это то, что было создано Spring Initializr.
Я считаю, что вопрос с этой линией в landingPage.html, но я не знаю, что еще поставить, кроме «./»:
data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./"
}
Я был в состоянии получить эту работу до шага 3 в учебнике OpenUI5; однако, кажется, что, как только я должен определить представление в XML-файле, библиотека OpenUI5 не может его найти. Я не знаю, куда еще положить файл App.view.xml, я бы подумал, что где-нибудь под статической папкой будет хорошо ...
Я не уверен, связано ли это с тем фактом, что я использую встроенный Tomcat, но я бы хотел, чтобы это работало с использованием встроенного Tomcat.
Любые предложения о том, как я могу сделать эту работу?
Как выглядит URL-адрес вашего сайта landingPage.html? – hirse
Как я могу понять Spring MVC для работы, вы не можете найти destinationPage.html через URL-адрес, так как это фактически шаблон представления, а не статический ресурс. Основываясь на методе RequestMapping, определенном в LandingPageController, перейдя по адресу http: // localhost: 8080 /, он вызовет метод redirect(), который отобразит шаблон представления landingPage.html. Единственный статический файл, который у меня есть, - это представление OpenUI5 XML, которое можно найти по адресу http: // localhost: 8080/webapp/view/App.view.xml – sadiq