java - 使用多 Action Controller

标签 java spring spring-mvc

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

两个问题

  1. 我可以使用类实现 validator 吗?并以与 simpleformcontroller 相同的方式注入(inject)配置中或 Controller 中的其他方式?如何?请举个例子?

  2. 我可以在jsp中使用java bean -> 我总是遇到绑定(bind)错误,如何指示 Controller 使用这个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;
    }
}

关于java - 使用多 Action Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565001/

相关文章:

Java 验证证书是否与 key 相关联

java - Bean 创建回退的最佳实践是什么?

java - Spring MVC Web 应用程序中映射到 HTTP 路径的处理程序方法不明确

java - Jenkins 。为作业传递 vm 选项(使用占位符)

java - 如何判断两个String是否相等(大写和小写)-Java

java - 二进制运算符的错误操作数类型

java - 使用 JUnit 4 测试自定义异常的错误代码

Java、Hibernate - 运行现有项目时发生运行时异常

json - Watson SpeechToText Java 和 javascript 模型差异

spring - 在 Spring MVC Controller 中防止 XSS