Java 在JSP中使用带参数的@ModelAttribute

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

我想使用@modeldattribute方法返回一个带参数的字符串,这是控制器中存在的方法:

@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
方法。