gpt4 book ai didi

java - 无法使用 EL 解析对象

转载 作者:行者123 更新时间:2023-11-29 06:19:30 24 4
gpt4 key购买 nike

public class Foo extends Properties {
public String getVal(){
return "2";
}
}

在我的 HttpServlet 类的 doGet(..) 方法中,我正在这样做,

Foo foo = new Foo();
request.setAttribute("key", foo);

然后在.jsp中就是这段代码,

1  ${key}
2 ${key.val}
3 <%=request.getAttribute("key")%>
4 <%=((Foo)request.getAttribute("key")).getVal()%>

这是输出,

1  {}
2
3 {}
4 2

谁能告诉我为什么 ${key.val} 不起作用?

[编辑] 我只对 foo 类的一个属性感兴趣,因为似乎没有办法使用 EL 访问 getVar() 调用(对吗?),一个可行的替代方案是 jsut put 吗?

request.setAttribute("key_val", foo.getVal());

Foo 是 Properties 类的子类的子类,因此我无法轻松地将它们解耦。

最佳答案

也许您禁用了 EL?检查这两个答案以了解可能的原因和解决方案:

另一种可能性是你有 key在您的其他上下文中绑定(bind)到不同的东西。这段代码:

${key}

相当于:

<%= page.findAttribute("key") %>

而不是 <%= request.getAttribute("key") %> .它首先在 pageContext 中搜索,然后在最后搜索请求、 session 和应用程序上下文。

关于java - 无法使用 EL 解析对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3738758/

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