我想填充一个使用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
它的工作!非常感谢你的帮助!!!!! –