Grails插件filterPane associatedProperties不';不适用于java.net.URL
我想在下面的课堂上设置一个过滤器(“辩论”)。默认情况下,我会得到一个包含标题、发布和url的过滤器。这很好,但是当我尝试对URL进行筛选时,我得到了以下异常。“java.lang.String不能强制转换为java.net.URL”,有关完整堆栈跟踪,请参见底部 为了解决这个问题,我添加了一个url.authority的associatedProperties,见下文。我想,因为filterpane是比较字符串的,所以我给它一个字符串(url.authority) 问题是url.authority的associatedProperties从未出现在筛选器上 我查看了filterpane代码,可以看到以下代码Grails插件filterPane associatedProperties不';不适用于java.net.URL,url,grails,filter,pane,Url,Grails,Filter,Pane,我想在下面的课堂上设置一个过滤器(“辩论”)。默认情况下,我会得到一个包含标题、发布和url的过滤器。这很好,但是当我尝试对URL进行筛选时,我得到了以下异常。“java.lang.String不能强制转换为java.net.URL”,有关完整堆栈跟踪,请参见底部 为了解决这个问题,我添加了一个url.authority的associatedProperties,见下文。我想,因为filterpane是比较字符串的,所以我给它一个字符串(url.authority) 问题是url.authori
// Extract out the associations. These are handled separately from simple properties.
List associatedProps = persistentProps.findAll {
it.association == true && !it.type.isEnum()
}
这不包括url.authority,因为url.authority不是单独的域。我可以把url放到一个域中,我猜它会起作用,但我不想这样做,因为它会改变我的底层代码以适应插件,这是非常糟糕的做法
class Debate
{
String title;
Date published;
URL url;
static constraints =
{
url nullable : false, unique : true
}
}
顺便说一句,我试着不使用excludeProperties,这没有什么区别
<filterpane:filterPane dialog="true" domain="com.content.OpenDebate"
associatedProperties="url.port" excludeProperties="url"/>
顺便说一句:为什么我会被限制在我可以用来描述这篇文章的标签里。我必须拥有1500或更高的声誉,才能包括filterpane和associatedproperties这两个词。这使得我的帖子不太可能被回复。所以我在这方面花了足够的时间。我有个变通办法 我在我的域类中添加了一个额外的字段。这提供了我想要筛选的url.authority 我已将url从筛选器中排除,并添加了作者 请参阅下面的代码
class Debate
{
String title;
Date published;
URL url;
// author derived from url
String getAuthor()
{
return(url.authority)
}
void setAuthor(String s)
{
// do nothing, just a dummy.
}
static constraints =
{
url nullable : false, unique : true
}
@Override
String toString()
{
return "${url} : ${title} : ${author} : ${published}";
}
<filterpane:filterPane dialog="true" domain="com.content.OpenDebate"
filterProperties="${['author', 'title', 'published']}"
filterPropertyValues="${[published:[precision:'day']]}"/>
课堂辩论
{
字符串标题;
公布日期;
网址;
//从url派生的作者
字符串getAuthor()
{
返回(url.authority)
}
void setAuthor(字符串s)
{
//什么也不做,只是个傀儡。
}
静态约束=
{
url可为空:false,唯一:true
}
@凌驾
字符串toString()
{
返回“${url}:${title}:${author}:${published}”;
}
class Debate
{
String title;
Date published;
URL url;
// author derived from url
String getAuthor()
{
return(url.authority)
}
void setAuthor(String s)
{
// do nothing, just a dummy.
}
static constraints =
{
url nullable : false, unique : true
}
@Override
String toString()
{
return "${url} : ${title} : ${author} : ${published}";
}
<filterpane:filterPane dialog="true" domain="com.content.OpenDebate"
filterProperties="${['author', 'title', 'published']}"
filterPropertyValues="${[published:[precision:'day']]}"/>