如何通过jsp中的`get()`方法访问对象?

Ral*_*lph 2 java jsp tomcat guava

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

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;}
}
Run Code Online (Sandbox Code Playgroud)

A 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}" />
Run Code Online (Sandbox Code Playgroud)

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

Ral*_*lph 5

感谢Sotirios Delimanolis

因为Servlet 3.0/JSP 2.2可以使用

 <c:out value="${container.user.get().name}" />
Run Code Online (Sandbox Code Playgroud)

  • That's also the code from my comment :P (2认同)