Java8,JSP-应该将可选对象放在request.setAttribute()或session.setAttribute()中吗?
我意识到Java可选Ojbect是不可序列化的。我还意识到使用Optional对象的主要目的是用于方法返回类型 根据以下方法:Java8,JSP-应该将可选对象放在request.setAttribute()或session.setAttribute()中吗?,jsp,servlets,serialization,java-8,optional,Jsp,Servlets,Serialization,Java 8,Optional,我意识到Java可选Ojbect是不可序列化的。我还意识到使用Optional对象的主要目的是用于方法返回类型 根据以下方法: public Phone(){ public Optional<Phone> getPhone(){ // some logic goes here to create a new phone object and then put it in optional... } } 如果需要设置可选属性,它有什么用途?如果可选
public Phone(){
public Optional<Phone> getPhone(){
// some logic goes here to create a new phone object and then put it in optional...
}
}
可选
为无
,请不要这样做getPhone()
.map(phone -> Request.withPhone(phone))
.orElse(Request.withoutPhone())
建议不要使用isPresent
和get
,因为这不是处理可选的惯用(声明性)方法。将其与我(伪科迪什)的建议进行比较
请您提供更多详细信息。withPhone()或withoutPhone()方法?这里这个问题的主要目的是理解通过使用Optional.Sry将数据对象传递到JSP页面的正确方法,我认为主要目的是如何正确处理第三个问题的最后一部分指出的
Optional
。我可以问一下这个请求的接收者长什么样吗?我理解可选属性要么存在要么不存在,因此在optional
为空的情况下什么也不做(None
,而不是Some(value)
)。
//put Phone object in request/session.
request.setAttribute("phoneObject", optionalPhone.orElseGet(Phone::new));
getPhone()
.map(phone -> Request.withPhone(phone))
.orElse(Request.withoutPhone())