gpt4 book ai didi

java - 表达语言和接口(interface)

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:56 29 4
gpt4 key购买 nike

我不是 JSTL 和表达式语言的专家,所以我的问题可能很愚蠢......

我正在使用 Spring MVC,在我的 Controller 中我有:

@ModelAttribute("export_types")
public ExportType[] getExportTypes() {
return edService.getTypes();
}

ExportType 是自定义接口(interface):

public interface ExportType {

String getName();

//...
}

在我的页面中我有:

<c:forEach var="item" items="${export_types}">
<tr>
<td><input type="checkbox" value="${item.name}"></td>
<td>${item.name}</td>
</tr>
</c:forEach>

但是当我运行我的网络应用程序时,我得到了这个预期:javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String

奇怪的是,异常显示的是on type java.lang.String 而不是ExportType 类型。所以我的问题是:我不能在接口(interface)中使用表达式语言吗?


注意事项 1

edService.getTypes() 返回一个 ExportType[] 数组,其中包含接口(interface)的具体实现。

为了清楚起见,我有一个实现ExportType 接口(interface)的抽象类。具体类型继承自:

public abstract class AbstractExportType implements ExportType {
protected String name;

protected AbstractExportType() {
this.name = this.getClass().getSimpleName();
}

@Override
String getName(){
return this.name;
}

//...
}

注2

转发到 export.jsp 的 Controller 方法非常简单:

@RequestMapping(value = "/export", method = RequestMethod.GET)
public String getExportForm() {
return "jsp/export";
}

最佳答案

我不认为它与接口(interface)有任何关系。正如@doublep 所说,export_types 实际上不是ExportType[]。我已经尝试重现您正在做的事情并且效果很好。

关于java - 表达语言和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918857/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com