从Struts源程序中可看出,处理表单请求的主函数process()中确实是对是否有ActionForm进行判断,如果处理ActionForm则不直接返回。
我个人认为,如果没有ActionForm Bean,即不用直接读取商业逻辑数据,那就没有必要采用Action,你可直接链接或转发到目标地址就行了。下面是Struts源程序中处理表单请求的主函数process():public void process(HttpServletRequest request,
                        HttpServletResponse response)
        throws IOException, ServletException {        // Wrap multipart requests with a special wrapper
        request = processMultipart(request);        // Identify the path component we will use to select a mapping
        String path = processPath(request, response);
        if (path == null) {
            return;
        }
        if (log.isDebugEnabled()) {
            log.debug("Processing a '" + request.getMethod() +
                      "' for path '" + path + "'");
        }        // Select a Locale for the current user if requested
        processLocale(request, response);        // Set the content type and no-caching headers if requested
        processContent(request, response);
        processNoCache(request, response);        // General purpose preprocessing hook
        if (!processPreprocess(request, response)) {
            return;
        }        // Identify the mapping for this request
        ActionMapping mapping = processMapping(request, response, path);
        if (mapping == null) {
            return;
        }        // Check for any role required to perform this action
        if (!processRoles(request, response, mapping)) {
            return;
        }        // Process any ActionForm bean related to this request
        ActionForm form = processActionForm(request, response, mapping);
        processPopulate(request, response, form, mapping);
        if (!processValidate(request, response, form, mapping)) {
            return;
        }        // Process a forward or include specified by this mapping
        if (!processForward(request, response, mapping)) {
            return;
        }
        if (!processInclude(request, response, mapping)) {
            return;
        }        // Create or acquire the Action instance to process this request
        Action action = processActionCreate(request, response, mapping);
        if (action == null) {
            return;
        }        // Call the Action instance itself
        ActionForward forward =
            processActionPerform(request, response,
                                 action, form, mapping);        // Process the returned ActionForward instance
        processForwardConfig(request, response, forward);    }