XxxController_Roo_GvNIXDatatables.aj 未针对 Xxxcontroller.java class 中的更改进行更新
XxxController_Roo_GvNIXDatatables.aj not updated for changes in the Xxxcontroller.java class
XxxController_Roo_GvNIXDatatables.aj 未针对 Xxxcontroller.java class 中的更改进行更新。
当将 "update=false, delete=false" 添加到控制器 class 时,XxxController_Roo_Controller.aj 通过删除更新和删除方法来更新,但是对于 XxxController_Roo_GvNIXDatatables.aj 则不是这种情况。这反过来会导致错误,如下所述。
一个例子
作为示例,我在下面有 Spring roo 脚本
"project --topLevelPackage com.springsource.petclinic
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
entity jpa --class ~.domain.Pet --sequenceName PET_SEQ
field string --fieldName name --notNull --sizeMin 1
field number --fieldName weight --type java.lang.Float --notNull --min 0
web mvc setup
web mvc all --package ~.web
web mvc jquery setup
web mvc jquery all
web mvc datatables setup
web mvc bootstrap setup
web mvc datatables add --type ~.web.PetController
在某些用例中,例如交易,您不希望用户更新或删除,因此我通过添加 "update=false, delete=false" 更改了 PetController.java class。这么老了:
@RequestMapping("/pets")
@Controller
@RooWebScaffold(path = "pets", formBackingObject = Pet.class)
@GvNIXWebJQuery
@GvNIXDatatables(ajax = true)
public class PetController {
}
新:
@RequestMapping("/pets")
@Controller
@RooWebScaffold(path = "pets", formBackingObject = Pet.class, update=false, delete=false)
@GvNIXWebJQuery
@GvNIXDatatables(ajax = true)
public class PetController {
}
效果是 PetController_Roo_Controller.aj 文件中删除了更新和删除方法。
public String PetController.update(@Valid Pet pet, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
public String PetController.updateForm(@PathVariable("id") Long id, Model uiModel) {
public String PetController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
然而
在PetController_Roo_GvNIXDatatables.aj文件中,update和delete方法没有去掉。
这导致错误:
- 更新方法(Pet, BindingResult, Model, HttpServletRequest) 是
未定义类型 PetController
- 方法 delete(Long, Integer, Integer, Model) 未定义
PetController 类型
问题:
- 我的假设是否正确,即两个 aspectJ 文件应该被同等对待?
- 有解决办法吗?
我不想强推,因为在我看来他们不应该在那里。
从 PetController_Roo_GvNIXDatatables.aj 中删除代码也无济于事,因为它们会在我下次启动 Roo shell 时自动插入,顺便说一句,这是正确的。
首先,感谢您的报告以及您对 gvNIX 项目的关注。
第二,你是对的。当控制器配置为删除更新或创建等操作时,应更新数据表 aspectJ 文件。
不幸的是,没有推入没有解决方法。
我会在下一版本的 gvNIX 中考虑这个问题。
此致,再次感谢!
XxxController_Roo_GvNIXDatatables.aj 未针对 Xxxcontroller.java class 中的更改进行更新。 当将 "update=false, delete=false" 添加到控制器 class 时,XxxController_Roo_Controller.aj 通过删除更新和删除方法来更新,但是对于 XxxController_Roo_GvNIXDatatables.aj 则不是这种情况。这反过来会导致错误,如下所述。 一个例子 作为示例,我在下面有 Spring roo 脚本
"project --topLevelPackage com.springsource.petclinic
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY
entity jpa --class ~.domain.Pet --sequenceName PET_SEQ
field string --fieldName name --notNull --sizeMin 1
field number --fieldName weight --type java.lang.Float --notNull --min 0
web mvc setup
web mvc all --package ~.web
web mvc jquery setup
web mvc jquery all
web mvc datatables setup
web mvc bootstrap setup
web mvc datatables add --type ~.web.PetController
在某些用例中,例如交易,您不希望用户更新或删除,因此我通过添加 "update=false, delete=false" 更改了 PetController.java class。这么老了:
@RequestMapping("/pets")
@Controller
@RooWebScaffold(path = "pets", formBackingObject = Pet.class)
@GvNIXWebJQuery
@GvNIXDatatables(ajax = true)
public class PetController {
}
新:
@RequestMapping("/pets")
@Controller
@RooWebScaffold(path = "pets", formBackingObject = Pet.class, update=false, delete=false)
@GvNIXWebJQuery
@GvNIXDatatables(ajax = true)
public class PetController {
}
效果是 PetController_Roo_Controller.aj 文件中删除了更新和删除方法。
public String PetController.update(@Valid Pet pet, BindingResult bindingResult, Model uiModel, HttpServletRequest httpServletRequest) {
public String PetController.updateForm(@PathVariable("id") Long id, Model uiModel) {
public String PetController.delete(@PathVariable("id") Long id, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, Model uiModel) {
然而 在PetController_Roo_GvNIXDatatables.aj文件中,update和delete方法没有去掉。 这导致错误:
- 更新方法(Pet, BindingResult, Model, HttpServletRequest) 是 未定义类型 PetController
- 方法 delete(Long, Integer, Integer, Model) 未定义 PetController 类型
问题:
- 我的假设是否正确,即两个 aspectJ 文件应该被同等对待?
- 有解决办法吗? 我不想强推,因为在我看来他们不应该在那里。 从 PetController_Roo_GvNIXDatatables.aj 中删除代码也无济于事,因为它们会在我下次启动 Roo shell 时自动插入,顺便说一句,这是正确的。
首先,感谢您的报告以及您对 gvNIX 项目的关注。
第二,你是对的。当控制器配置为删除更新或创建等操作时,应更新数据表 aspectJ 文件。
不幸的是,没有推入没有解决方法。
我会在下一版本的 gvNIX 中考虑这个问题。
此致,再次感谢!