如何通过jsp中的get()方法访问对象?
问题描述:
我有一个容器对象,其中包含一个谷歌/番石榴Optional
,我想访问这个Optinal
在jsp中的内容。如何通过jsp中的get()方法访问对象?
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}
INS的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();}
)?
答
由于索蒂里奥斯Delimanolis
以来的Servlet 3.0/JSP 2.2可以使用
<c:out value="${container.user.get().name}" />
+2
这也是我评论中的代码:P – 2014-09-19 16:40:55
'$ {container.user}'将会返回'可选',所以以后你将不得不使用来自'可选'的合适的获取器从'用户'中检索数据。 –
2014-09-19 15:36:42
这可能是有用的:http://download.****.net/detail/item/detail.php?f=2&id=2121166/can-jsp-el-do-direct-attribute-access – 2014-09-19 15:42:53
@Luiggi门多萨:问题是,“propper”getter形式'Optinal'有名字'get'! – Ralph 2014-09-19 16:28:36