如何使用包名来区分grails中的类?

时间:2010-03-04 09:32:31

标签: grails

您可以使用包名来区分Grails中的类吗?

e.g。 com.business.appName.DomainClass和com.business.appName.foo.DomainClass?

我认为这会导致问题,因为grails需要唯一的类名。如果您尝试此操作,当您尝试为com.business.appName.foo.DomainClass生成视图时,它会尝试覆盖com.business.appName.DomainClass的视图gsps

有没有办法在不同的包中使用相同的域名?

2 个答案:

答案 0 :(得分:3)

问题是控制器名称必须是唯一的。在不同的包中为两个具有相同名称的域类运行'generate-controller'或'generate-all'会在它自己的包中创建两个不同的控制器,但它们都将映射到/ yourapp / domainClass URL并且都将共享grails-app / views / domainClass GSP文件夹。

你需要重命名其中一个控制器,因为即使在不同的软件包中也不能有两个相同的名称,即使在URLMappings中也无法解决这个问题,所以如果你想要的话,它看起来是你最好的选择使用生成的代码生成第一组并移动控制器和视图,然后生成第二组。然后重命名一个或两个控制器,以便它们具有唯一的URL并重命名相应的GSP文件夹。

答案 1 :(得分:0)

如果您的gsp中存在问题,请尝试在顶部声明

<%@ page import="com.thePackageIWant.TheClassIWant" %>

编辑: 您是否尝试在生成视图时指定包?

grails generate-views com.business.appName.foo.DomainClass

抱歉,我是Grails的新手,所以我可能无法为您提供更多帮助:(