我想填充一個使用Spring和Thymeleaf的Mongo集合中的數據的HTML選擇。我試着按照以下問題提出建議:"how do I populate a drop down with a list using thymeleaf and spring","how to bind an object list with thymeleaf"和"spring app not finding property on object",但我沒有任何運氣。填充HTML選擇春天,百里香和蒙戈
當我在我的HTML使用這個語法,
<div class="form-group">
<label for="commoditiesSelect"> Commodities: </label>
<select multiple="Commodities" id="commoditiesSelect" class="form-control" th:field="*{commodities}">
<option th:each="commodity : ${possibleCommoditiesList}"
th:text="${possibleCommodities}"
th:value="${possibleCommodities}"
/>
</select>
</div>
我只是得到了一個空白列表我在網頁上選擇。但是,我知道發送給我的模型的列表中有多個對象(通過調試)。我弄亂了語法,但最接近的是指向網頁上顯示的對象的指針。有誰知道我出錯的地方?下面包括我的控制器,服務實現,PossibleCommodities類和PossibleCommoditiesRepository類。
控制器:
@GetMapping("/welcomeMatForm")
public String welcomeMatForm(Model model) {
List<PossibleCommodities> possibleCommoditiesList = welcomeMatService.getPossibleCommodities();
model.addAttribute("possibleCommoditiesList", possibleCommoditiesList);
model.addAttribute("welcomeMatForm", new WelcomeMatForm());
return "welcomeMatForm";
}
服務實現類:
public List<PossibleCommodities> getPossibleCommodities(){
List<PossibleCommodities> listOfCommodities = possibleCommoditiesRepository.findAll();
return listOfCommodities;
}
PossibleCommodities類:
package com.sensus.analytics.welcomemat.core.model;
import org.springframework.data.annotation.TypeAlias;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "possible_commodities")
@TypeAlias("PossibleCommodities")
public class PossibleCommodities extends BasicMongoDocument{
public String commodityName;
private int commodityId;
public String getCommodityName(int commodityId) {
return commodityName;
}
public void setCommodityName(String commodityName) {
this.commodityName = commodityName;
}
public int getCommodityId(String commodityName){
return commodityId;
}
public void setCommodityId(int commodityId) {
this.commodityId = commodityId;
}
}
PossibleCommoditiesRepository類:
package com.sensus.analytics.welcomemat.core.repository;
import com.sensus.analytics.welcomemat.core.model.PossibleCommodities;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.List;
public interface PossibleCommoditiesRepository extends MongoRepository<PossibleCommodities, String> {
public List<PossibleCommodities> findAll();
}
編輯:我試過了HTML這個共同的語法,以及:
<div class="form-group">
<label for="commoditiesSelect"> Commodities: </label>
<select multiple="Commodities" id="commoditiesSelect" class="form-control" th:field="*{commodities}">
<option th:each="commodity : ${possibleCommoditiesList}"
th:text="${possibleCommodities.commodityName}"
th:value="${possibleCommodities.commodityName}"
/>
</select>
</div>
,但它給了我這個錯誤:EL1007E:(pos 0): Property or field 'commodityName' cannot be found on null
它的工作!非常感謝你的幫助!!!!! –