Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以防止在操作阶段调用ModelAttribute方法吗?_Java_Portlet_Spring Portlet Mvc - Fatal编程技术网

Java 我可以防止在操作阶段调用ModelAttribute方法吗?

Java 我可以防止在操作阶段调用ModelAttribute方法吗?,java,portlet,spring-portlet-mvc,Java,Portlet,Spring Portlet Mvc,我有以下课程 @Controller @RequestMapping( "VIEW" ) @SessionAttributes( "application" ) public class EditApplicationController { private static final Logger logger = LoggerFactory.getLogger( EditApplicationController.class ); p

我有以下课程

@Controller
@RequestMapping( "VIEW" )
@SessionAttributes( "application" )
public class EditApplicationController {

    private static final Logger logger = LoggerFactory.getLogger( EditApplicationController.class );

    private final ApplicationService applicationService;

    @Autowired
    public EditApplicationController( ApplicationService appServ ) {
        this.applicationService = appServ;
    }

    @RenderMapping( params = "action=editApplicationForm" )
    public String showEditApplication() {
        return "editApplicationForm";
    }

    @ActionMapping( params = "action=editApplication" )
    public void editApplication( @Valid ApplicationDTO application ) {
        try {
            this.applicationService.updateApplication( application );
        } catch ( final ApplicationNotFound e ) {
            logger.error( "No application exists with the given application id." );
        }
    }

    @ModelAttribute( "application" )
    public Application getApplication( @RequestParam long appId ) throws ApplicationNotFoundException {
        final Application app = this.applicationService.findApplicationById( appId );

        if ( app == null ) {
            throw new ApplicationNotFoundException();
        }

        return app;
    }
}

问题是,当我处于操作阶段时,我不希望或不需要检索ModelAttribute,因为我完全处理提交的表单对象。我可以将request param设为非必需并执行空检查,或者我可以添加一个新的控制器来单独执行操作,但这两个都感觉笨拙。

笨拙对您意味着什么;-),在这种情况下,可能更复杂一点是,我认为在操作阶段根本不需要ModelAttributes,所以似乎应该有一种方法只在渲染期间运行它。这可能只是因为我对春天缺乏经验。