我正在尝试用Thymeleaf和嵌入式Tomcat创建一个非常简单的Spring Boot 1.3.3 Web应用程序,使用OpenUI5作为客户端javascript UI库... 但我似乎无法将OpenUI5转换为加载data-sap-ui-resourceroots。这应该是可能的吗?
我开始转到start.spring.io并使用Web和Thymeleaf依赖项生成maven项目,然后添加一个带有XML视图的基本OpenUI5结构。我按照以下教程:
我最终得到了以下项目结构:
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>
我的application.properties文件为空,pom.xml正是Spring Initializr生成的内容。
我认为问题出在landingPage.html中的这一行,但我不知道除了“./":
之外还有什么内容。data-sap-ui-resourceroots='{
"sap.ui.demo.wt": "./"
}
我能够在OpenUI5教程中完成第3步。但是,似乎一旦我必须在XML文件中定义视图,OpenUI5库就无法找到它。我不知道在哪里放置App.view.xml文件,我原以为静态文件夹下的任何地方都可以正常...
我不确定这是否与我使用嵌入式Tomcat的事实有关,但我希望这可以使用嵌入式Tomcat。
关于如何使这项工作的任何建议?
答案 0 :(得分:0)
我不熟悉Spring或任何提到的Java框架,但我可以尝试使用resourceRoots来帮助您。
使用该设置,您可以告诉OpenUI5框架,在哪里可以找到某些资源。
设置"sap.ui.demo.wt": "./"
表示以sap.ui.demo.wt
开头的所有内容都可以在与当前页面/文件相同的目录中找到。任何进一步的.<something>
表示具有该名称的子文件夹。
您可以使用例如:
来定义相对于html文件或绝对值的resourceRoots
"sap.ui.demo.wt": "/resources/static/webapp"
在这种情况下,sap.ui.demo.wt.view.App
会找到(或至少查找)名为/resources/static/webapp/view/App.view.xml
的视图。