Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 使用多动作控制器_Java_Spring_Spring Mvc - Fatal编程技术网

Java 使用多动作控制器

Java 使用多动作控制器,java,spring,spring-mvc,Java,Spring,Spring Mvc,目前我在我的页面上使用分页,它使用MultiActionController完美地显示jsp页面,在同一页面上,现在我想验证一个简单的文本字段(input/form:input),还想在单击链接后从下拉列表(Select option)中检索名称和id。简单 两个问题 我可以使用类实现验证器吗?并以与配置中的simpleformcontroller相同的方式注入它,还是以其他方式注入控制器?怎么用?请举个例子好吗 我可以在jsp中使用JavaBean吗->我总是会遇到绑定错误,如何使用这个bea

目前我在我的页面上使用分页,它使用
MultiActionController
完美地显示jsp页面,在同一页面上,现在我想验证一个简单的文本字段(
input/form:input
),还想在单击链接后从下拉列表(
Select option
)中检索名称和id。简单

两个问题

  • 我可以使用类实现验证器吗?并以与配置中的simpleformcontroller相同的方式注入它,还是以其他方式注入控制器?怎么用?请举个例子好吗

  • 我可以在jsp中使用JavaBean吗->我总是会遇到绑定错误,如何使用这个bean?我已经作为参数传递给我的add方法,并尝试重写newCommandObject

  • Controller.java

    public ModelAndView add(HttpServletRequest request, HttpServletResponse response,  Person person) throws Exception { 
    
             return new ModelAndView("userpage"); 
        } 
    
    @Override 
        protected Object newCommandObject(Class clazz) 
        throws Exception {
    
             return new Person();
    }
    

    我将在Spring版本>2.5中执行以下操作

    @Controller
    public class YourController
    {
        protected final Log logger = LogFactory.getLog(getClass());
    
        private final String yourInputJsp = "yourInputJsp";
    
        private final String yourInputJspSuccess = "yourInputJspSuccess";
    
        private YourService yourService;
    
        @Autowired
        @Qualifier("yourFormValidator")
        private YourFormValidator validator;
    
        @RequestMapping(value = "/yourRequest.htm", method = RequestMethod.GET)
        public String referenceData(ModelMap model, HttpServletRequest request) throws Exception 
        {
            yourService = new YourServiceImpl(ContextHandler.getWebAppContext(request));
            YourFormData yourFormData = new YourFormData();
    
            model.addAttribute("yourFormData", yourFormData);
    
            return yourInputJsp;
        }
    
        @InitBinder()
        public void initBinder(WebDataBinder binder) throws Exception {
            binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
        }
    
            @RequestMapping(value="/yourRequest.htm", method = RequestMethod.POST)
            public String process(@ModelAttribute("yourFormData") YourFormData yourFormData, BindingResult result, SessionStatus status, HttpServletRequest request)
            {
                String mav = yourInputJsp;
                validator.validate(yourFormData, result);
    
                if(!result.hasErrors())
                {
                    //Some business logic
    
                    mav = "redirect:yourInputJspSuccess.htm";
                    status.setComplete();
                }
    
                return mav;
        }
    }
    

    您使用的是哪个版本的SpringMVC?我建议您使用JSR-303验证器,该验证器可以从www.hibernate.org获得,但这需要新版本的Spring。但由于您使用的是Spring3,您可能需要重新考虑使用MultiActionController。旧的Controller zoo有一个更灵活的后续版本,您可以通过使用一组新的注释将任何类用作控制器。搜索控制器和有效的注释。