我在ReportController中有以下重载方法.
String makePhotoXml(StringBuilder sb,Report r,String url,String desc) { sb.append("<photo>") sb.append(UtilitIEs.makeElementcdata("url",url)) sb.append(UtilitIEs.makeElementcdata("caseID",r.caseID)) sb.append(UtilitIEs.makeElementcdata("type",r.type)) sb.append(UtilitIEs.makeElementcdata("date",r.dateCreated.format('MM/dd/yy'))) sb.append(UtilitIEs.makeElementcdata("address",r.address)) sb.append("<extra>extra</extra>") sb.append(UtilitIEs.makeElementcdata("description",desc)) sb.append("</photo>")}String makePhotoXml(List<Report> reports) { StringBuilder sb = new StringBuilder() sb.append("<photos>") sb.append("<Title>Photos</Title>") for (Report r : reports) { for (Photo photo : r.photos) { makePhotoXml(sb,r,photo.url(),photo.description) } for (document doc : r.photodocuments) { makePhotoXml(sb,doc.url(-1),doc.getDescription()) } } sb.append("</photos>")}
运行应用程序时,我收到此编译器错误:
| Error Compilation error: startup Failed:/Users/Anthony/GrailsApps/AppOrderWeb/grails-app/controllers/com/apporder/ReportController.groovy: 1360: Controller actions may not be overloaded. The [makePhotoXml] action has been overloaded in [com.apporder.ReportController]. @ line 1360,column 5. String makePhotoXml(StringBuilder sb,String desc) {
我认为Groovy和Grails支持方法重载.有关如何解决此问题并使此重载方法有效的任何想法?
@R_404_6120@ Groovy通常允许方法重载,但Grails禁止它用于控制器 *** 作的特定情况.如果您想在控制器中使用实用程序方法,则需要将它们设置为私有或受保护,因此Grails不会尝试将它们视为Web可见 *** 作.或者,将辅助方法移动到服务中而不是将它们放在控制器中会更加Grails-y.
总结以上是内存溢出为你收集整理的Grails Controller Actions可能不会超载全部内容,希望文章能够帮你解决Grails Controller Actions可能不会超载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)