繁体   English   中英

如何使用Spring Boot将JPA数据从其余资源返回到网页?

[英]How can I return JPA data from a rest resource to a webpage using Spring Boot?

我正在使用Spring Boot Guides中的教程。 我如何将所有营养从数据库返回到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);


}

编辑:我已经看到了代码示例,其中有一个名为“模型”的对象作为参数传递给其余存储库,但是,我不知道如何将其编织到示例项目中。

ReposityRestResource在返回RESTful响应时是显式的。 如果您希望将结果显示为HTML而不是JSON,那么您想使用Thymeleaf之类的重播引擎。 一个极端的情况是,如果您希望网页对支持服务进行AJAX调用以提取数据。

如果要返回带有Thymeleaf的HTML,则可以,您希望将结果添加到“模型”页面中,以便Thymeleaf可以呈现它。 有一个入门指南: https : //spring.io/guides/gs/serving-web-content/ 您在该指南上想要做的另一件事是将存储库注入到控制器中并调用find方法。

对于AJAX解决方案,您可以使用jQuery之类的JavaScript库来调用该服务。 我对流程并不熟悉。 最好添加另一个针对该问题的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM