【问题标题】:How to access an object via a method `get()` in jsp?如何通过jsp中的get()方法访问对象?
【发布时间】:2014-11-14 06:13:12
【问题描述】:

我有一个包含 google/Guava Optional 的容器对象,我想在 jsp 中访问这个 Optinal 的内容。

import com.google.common.base.Optional;
public class Container {       
   private Optional<User> user;
   public Optional<User> getUser(){return this.user;}
}

public class User{
   private String name;
   public String getName() {return this.name;}
}

Optional 有一个方法get() 来获取内部对象。 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Optional.html#get%28%29

我已经尝试过(${container}Container 的一个实例):

<c:out value="${container.user.name}" />
<c:out value="${container.user.get.name}" />
<c:out value="${container.user..name}" />

它们都不起作用(Tomcat 7.42)。有没有人知道如何解决这个问题,无需向容器添加新属性 (getUser2(){return this.user.get();})?

【问题讨论】:

  • ${container.user} 将返回Optional&lt;User&gt;,因此之后您必须使用来自Optional 的正确getter 来从User 检索数据。
  • @Luiggi Mendoza:问题在于“propper”getter 形式 Optinal 的名称为 get
  • 然后使用${container.user.get().name},但是你应该验证你的Tomcat安装中的EL库是否支持这个。

标签: java jsp tomcat guava


【解决方案1】:

感谢 Sotirios Delimanolis

因为 Servlet 3.0 / JSP 2.2 可以使用

 <c:out value="${container.user.get().name}" />

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多