我正在使用Spring Boot Guides中的this教程。如何将DB中的所有营养素返回到JSP或ThymeLeaf页面。现在,我希望将前端和后端放在项目中。
如何配置项目,以便其他响应显示在我计划添加的网页上?我需要添加一些xml配置吗?春天还有必要吗?
实体:
@Entity
@Table(name = "NUTRIENT_DEFINITION")
public class NutritionDefinition implements Serializable {
@Id
@NotNull()
@Size(max = 3)
@Column(name = "USDA_NUTRIENT_IDENTIFIER")
private String usdaNutrientIdentifier;
@NotNull
@Size(max = 7)
@Column(name = "UNITS")
private String units;
@Size(max = 20)
@Column(name = "INFOODS_TAG")
private String infoodsTag;
@NotNull
@Size(max = 60)
@Column(name = "NUTRIENT_NAME")
private String nutrientName;
@NotNull
@Size(max = 1)
@Column(name = "NUMBER_OF_DECIMAL_PLACES")
private String numberOfDecimalPlaces;
@NotNull
@Size(max = 6)
@Column(name = "SORT_ORDER")
private String sortOrder;
protected NutritionDefinition(){
}
public NutritionDefinition(String usda_nutrient_identifier,String units, String infoods_tag,
String nutrient_name, String number_of_decimal_places, String sort_order){
this.usdaNutrientIdentifier = usda_nutrient_identifier;
this.units = units;
this.infoodsTag = infoods_tag;
this.nutrientName = nutrient_name;
this.numberOfDecimalPlaces = number_of_decimal_places;
this.sortOrder = sort_order;
}
public String getUsdaNutrientIdentifier() {
return usdaNutrientIdentifier;
}
public void setUsdaNutrientIdentifier(String usdaNutrientIdentifier) {
this.usdaNutrientIdentifier = usdaNutrientIdentifier;
}
public String getUnits() {
return units;
}
public void setUnits(String units) {
this.units = units;
}
public String getInfoodsTag() {
return infoodsTag;
}
public void setInfoodsTag(String infoodsTag) {
this.infoodsTag = infoodsTag;
}
public String getNutrientName() {
return nutrientName;
}
public void setNutrientName(String nutrientName) {
this.nutrientName = nutrientName;
}
public String getNumberOfDecimalPlaces() {
return numberOfDecimalPlaces;
}
public void setNumberOfDecimalPlaces(String numberOfDecimalPlaces) {
this.numberOfDecimalPlaces = numberOfDecimalPlaces;
}
public String getSortOrder() {
return sortOrder;
}
public void setSortOrder(String sortOrder) {
this.sortOrder = sortOrder;
}
}
休息班:
@RepositoryRestResource(collectionResourceRel = "NutritionDefinition", path = "NutritionDefinition")
public interface NutrientRepository extends PagingAndSortingRepository<NutritionDefinition,String>{
List<NutritionDefinition> findBynutrientName(@Param("nutrientName")String name);
}
编辑:我已经看过一个代码示例,其中一个对象名为&#34; Model&#34;是作为参数传递给其他存储库但是,我无法弄清楚如何将它编织到我的示例项目中。
答案 0 :(得分:0)
ReposityRestResource
明确表示返回RESTful响应。如果您想要将结果显示为HTML而不是JSON,那么您希望使用像Thymeleaf这样的重放引擎。对此的一个优势是,如果您希望网页对支持服务进行AJAX调用以提取数据。
如果您要使用Thymeleaf返回HTML,那么您可以将结果添加到页面模型中,以便Thymeleaf可以渲染它。有一个入门指南:https://spring.io/guides/gs/serving-web-content/。您需要在该指南中添加的一个内容是将存储库注入控制器并调用find方法。
对于AJAX解决方案,您可以使用jQuery之类的JavaScript库来调用服务。我对那种流程并不熟悉。最好添加一个针对该问题的另一个问题。