Java 通过Wicket 6中的PageParameters将可为null的参数传递给页面
我需要向我的页面传递一个参数,但我找不到传递可能为null的参数的方法 如果我这样做:Java 通过Wicket 6中的PageParameters将可为null的参数传递给页面,java,wicket,guava,wicket-1.6,Java,Wicket,Guava,Wicket 1.6,我需要向我的页面传递一个参数,但我找不到传递可能为null的参数的方法 如果我这样做: PageParameters pageParameters = new PageParameters (); pageParameters.add ("key", null); 这将导致异常 java.lang.IllegalArgumentException:参数“value”不能为null。 位于org.apache.wicket.util.lang.Args.notNull(Args.java:41)
PageParameters pageParameters = new PageParameters ();
pageParameters.add ("key", null);
这将导致异常
java.lang.IllegalArgumentException:参数“value”不能为null。
位于org.apache.wicket.util.lang.Args.notNull(Args.java:41)
如果我使用Google Guava的Optional,我找不到任何方法来强制转换该对象,即使该可选对象不包含null ie not equals to Optional.缺席():
在我的登录页的构造函数中
StringValue sv = parameters.get ("key");
sv.to ( Optional.of (MyEnum.SOME_ENUM_CONSTANT).getClass () );
当我运行它时,我会得到以下错误:
org.apache.wicket.util.string.StringValueConversionException:无法
将“Optional.of(SOME_ENUM_CONSTANT)”转换为类型类
com.google.common.base.Present
我做错什么了吗
在wicket 6中是否有其他方法可以传递可能为空的对象
我注意到在wicket 1.4中它们有PageParameters.NULL,这在wicket 6中似乎已经消失了
谢谢你这可能太简单了,但你怎么了
Object value = ?
if (value != null) {
pageParameters.add ("key", value);
}
及
wicket中的所有页面参数最终将被视为字符串。其思想是页面参数将位于请求的URL上 从javadoc: 假设我们在
/user
上挂载了一个页面,并且访问了以下url/user/profile/bob?action=view&redirect=false
。在本例中,profile
和bob
是索引参数,其索引分别为0
和1
<代码>操作和重定向
是命名参数
如果添加类似x=y&x
,参数x
将出现两次,一次是字符串y
,另一次是空字符串
取决于你想要完成什么,我建议你
- 当需要
值时,不要传递参数,并使用null
或isNull
方法toOptional
- 使用索引参数并测试是否存在某个单词
StringValue sv = pageParameters.get("key");
if (!sv.isNull()) {
// process string value
}