小编Ric*_*aul的帖子

使用getter样式方法名称将业务逻辑添加到域类

我正在尝试向grails域类添加一个方法,例如

class Item {

  String name

  String getReversedName() {
    name.reverse()
  }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用grails控制台加载应用程序时,我收到以下错误:

引起:org.springframework.beans.factory.BeanCreationException:创建名为'sessionFactory'的bean时出错:init方法的调用失败; 嵌套异常是org.hibernate.PropertyNotFoundException:在类Item中找不到属性reversedName的setter ... 18更多

看起来Hibernate将getReversedName()解释为属性的getter,但是在这种情况下它是派生字段,因此不应该持久化.显然,在我的实际代码中,我所暴露的业务逻辑更为复杂,但与此问题无关.我希望能够在我的代码/ gsps中调用item.reversedName.

如何在没有Grails尝试使用Hibernate映射它的情况下,为Grails域类中的方法提供属性(getter)访问权限?

grails groovy

4
推荐指数
1
解决办法
1859
查看次数

mod_rewrite:将路径和查询字符串URL作为参数传递

我正在使用mod_rewrite将漂亮的URL重写为Spring 2.5应用程序支持的表单.

e.g. /category/cat1?q=x   =>  /controller?category=cat1&q=x
Run Code Online (Sandbox Code Playgroud)

但是,从我的控制器我想知道请求来自的原始URL(所以我可以生成链接,如果需要).所有页面通常都需要这种方法,因此很难进行硬编码.

如何从控制器访问原始路径+查询字符串?

我尝试使用$ 0来包含完整路径,但这不包括查询字符串.我不能只追加路径和查询字符串,因为这会导致路径的某些部分被添加为参数/category/cat1?category=cat1&q=x 注意添加不需要的&category=cat1参数,这会导致URL不再与浏览器发送的URL匹配.

我希望mod_rewrite允许我引用完整的URL并将其编码为参数,因此我的规则可能如下所示:

RewriteRule /category/(.+)
            /controller?category=$1&_originalUrl=${escape:$0}?${escape:<original query string>}
            [QSA]
Run Code Online (Sandbox Code Playgroud)

使用我的原始示例,最终结果传递给我的控制器将是:

/controller?category=cat1&_originalUrl=%2Fcategory%2Fcat1%3Fsearch%3Dx&search=x
Run Code Online (Sandbox Code Playgroud)

最重要的部分是的值&_originalUrl应该是%2Fcategory%2Fcat1%3Fsearch%3Dx这在其转义的版本/category/cat1?q=x(这是从浏览器发送的原始请求URL).

欢迎任何建议,提前谢谢!

regex apache parameters url mod-rewrite

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache ×1

grails ×1

groovy ×1

mod-rewrite ×1

parameters ×1

regex ×1

url ×1