Java 在JSP中使用带参数的@ModelAttribute
我想使用@modeldattribute方法返回一个带参数的字符串,这是控制器中存在的方法:Java 在JSP中使用带参数的@ModelAttribute,java,spring,jsp,modelattribute,Java,Spring,Jsp,Modelattribute,我想使用@modeldattribute方法返回一个带参数的字符串,这是控制器中存在的方法: @ModelAttribute("status") public String getStatusDevice(String poi) { return deviceService.getStatus(poi); } 在视图JSP中调用该方法,如下所示: <c:set var = "activity" scope = "page" value ="${s
@ModelAttribute("status")
public String getStatusDevice(String poi) {
return deviceService.getStatus(poi);
}
在视图JSP中调用该方法,如下所示:
<c:set var = "activity" scope = "page" value ="${status(devicesList.information.poi)}"/>
<c:choose>
<c:when test="${activity == 'active' }">
<i class="material-icons">check</i>
</c:when>
<c:otherwise>
<i class="material-icons">report problem</i>
</c:otherwise>
</c:choose>
检查
报告问题
但它似乎无法识别该参数,因为当我创建跟踪日志时,POI为空。
你能帮帮我吗
谢谢
状态
是一个字符串
。因此,不确定您希望value=“${status(devicesList.information.poi)}”
做什么。它不会调用该方法,您不应该从JSP调用方法,它们只是视图,不应该包含逻辑。但它调用它是因为它返回HTTPRequest错误,服务中的方法是:@Override public String getStatus(String poi){String status=restTemplate.getForObject({poi}),String.class,poi);return status;}而且URL映射为“”,因此POI无法识别,因此不会调用它。它会给您一个错误,因为在任何@RequestMapping
方法之前总是调用@modeldattribute
带注释的方法,而且Spring无法获得poi
参数,因此它将失败,因为它是null
。这不是因为您认为它从JSP发出的调用失败,因为它尝试执行@RequestMapping
方法。