我的很多自定义组件扩展了EssentialsListComponent。相同的标准HST组件有很多有用的参数,例如pageSize
和sortOrder
(通过控制台输入),我目前必须在我的类中单独处理。这个过程很繁琐,容易出现人为错误。
如何在我的自定义HST组件中一次将所有标准参数应用于我的HST查询?例如,像下面这样的东西会很可爱:
@Override
protected <T extends EssentialsDocumentListComponentInfo> HstQuery buildQuery(HstRequest request, T paramInfo,
HippoBean scope) {
scope = request.getRequestContext().getSiteContentBaseBean();
try {
HstQuery hstQuery = request.getRequestContext().getQueryManager().createQuery(scope);
hstQuery.applyParameters(paramInfo);// paramInfo should already includes pageSize, sortOrder etc. right?
} catch (Exception e) {
}
}
答案 0 :(得分:2)
您可以扩展EssentialsDocumentListComponentInfo
接口,假设MyDocumentListComponentInfo
也是一个接口。
在MyDocumentListComponentInfo
界面上覆盖您希望拥有默认值的方法,例如pageSize
和sortOrder
。
假设您希望pageSize的默认值为20而不是10.为此,您将使用以下代码:
@Parameter(name = "pageSize", required = true, defaultValue = "20", displayName = "Page size", description = "Nr of items per page")
int getPageSize();
使用此功能,您无需在控制台中声明属性,除非您需要自定义值。
现在在您扩展的组件中,在类声明上方声明以下注释:
@ParametersInfo(type = MyDocumentListComponentInfo.class)
现在您的代码应该可以正常运行,并且每次都需要配置较少的参数。
答案 1 :(得分:0)
如果扩展组件,则继承其参数。 |如果将其设置为在hst配置中继承,则可以访问这些参数。您还可以重用或扩展现有的parameterinfo接口以使代码更清晰。如果参数信息中没有包含参数,那么您仍然可以按名称引用它。
请注意,文档链接适用于版本10.如果您需要7.9或更早版本的文档,请单击文章顶部的历史记录链接。