本文目录
- 本系列之前的文章
- 本篇之前的运行效果
- 修改`pom.xml`
- 添加新的Dependency
- 更新plugin
- 添加新的Controller
- 创建`index`目录
- 添加`UiIndexContentProviderFactory.java`
- 添加`resources`
- 运行结果
- 更新`UiIndexContentProviderFactory `
- 代码库 (Gitcode)
本系列之前的文章
本系列之前的文章:
SAP CAP篇一:快速创建一个Service,基于Java的实现
SAP CAP篇二:为Service加上数据库支持
SAP CAP篇三:定义Model
SAP CAP篇四:为CAP添加Fiori Elements程序(1)
SAP CAP篇五:为CAP添加Fiori Elements程序(1)
本篇之前的运行效果
在完成 SAP CAP篇五:为CAP添加Fiori Elements程序(1) 的基础之上,执行:
mvn spring-boot:run
打开浏览器:
修改pom.xml
继续增强程序。首先,修改在srv
文件夹中的pom.xml
。
添加新的Dependency
添加新的Dependency:
<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-adapter-api</artifactId>
</dependency>
更新plugin
在build
的plugins
下,修改下面这个plugin
添加workingDirectory
:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<skip>false</skip>
<!-- use project root directory as working directory to deliver fiori resources -->
<workingDirectory>..</workingDirectory>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
添加新的Controller
创建index
目录
在Application.java
所在的文件夹,添加index
目录。
添加UiIndexContentProviderFactory.java
添加UiIndexContentProviderFactory.java
文件夹:
package customer.demo_service.index;
import java.io.PrintWriter;
import com.sap.cds.adapter.IndexContentProvider;
import com.sap.cds.adapter.IndexContentProviderFactory;
/**
* Explicitly adds links to UI resources provided by this application to the index page
*/
public class UiIndexContentProviderFactory implements IndexContentProviderFactory {
@Override
public IndexContentProvider create() {
return new UiIndexContentProvider();
}
@Override
public boolean isEnabled() {
return true;
}
private static class UiIndexContentProvider implements IndexContentProvider {
private static final String ENDPOINT_START = "" +
" <ul>\n";
private static final String ENDPOINT = "" +
" <li>\n" +
" <a href=\"%s\">%s</a>\n" +
" </li>\n";
private static final String ENDPOINT_END = "" +
" </ul>\n";
@Override
public String getSectionTitle() {
return "UI endpoints";
}
@Override
public void writeContent(PrintWriter writer, String contextPath) {
writer.print(ENDPOINT_START);
writer.printf(ENDPOINT, contextPath + "/manage-books/webapp/index.html?sap-ui-xx-viewCache=false", "Manage Books");
writer.print(ENDPOINT_END);
}
}
}
添加resources
在resources
文件夹下,执行如下步骤:
- 添加文件夹
META-INF
; - 在
META-INF
文件夹下添加文件夹services
; - 在
serivces
文件夹下添加文件com.sap.cds.adapter.IndexContentProviderFactory
- 在刚刚创建的文件中,添加一行纯文本:
customer.demo_service.index.UiIndexContentProviderFactory
运行结果
这时,再运行如下命令编译程序:
mvn clean install
再运行命令打开程序:
mvn spring-boot:run
页面效果——这时UI endpoints出现了:
点击Manage Books
链接,可以打开Fiori Elements
:
更新UiIndexContentProviderFactory
上面只添加了manage-books
程序,还要添加browse-books
:
@Override
public void writeContent(PrintWriter writer, String contextPath) {
writer.print(ENDPOINT_START);
writer.printf(ENDPOINT, contextPath + "/manage-books/webapp/index.html?sap-ui-xx-viewCache=false", "Manage Books");
writer.printf(ENDPOINT, contextPath + "/browse-books/webapp/index.html?sap-ui-xx-viewCache=false", "Browse Books");
writer. Print(ENDPOINT_END);
}
代码库 (Gitcode)
与本文配套的代码
参考README.md
关于各个branch的详细介绍。
本篇对应的branch
是2_withfe
。