Access GWT Form Values from Spring Controller



我已经开始学习GWT,我想知道是否可以在GWT中为用户注册等过程创建一个表单,然后在spring控制器中处理注册逻辑(额外验证、将数据添加到数据库等)。到目前为止,我还无法在网上找到这样做的资源,所以我猜我想要的可能是不可能的。这只能使用本视频教程中所示的扩展RemoteServiceServlet的类来完成吗?

我曾尝试使用request.getParameter()方法调用从spring控制器访问数据,但我注意到,当我使用Post方法时,我无法访问表单参数,但当我使用Get时,我可以访问它们。这是我正在使用的一些代码:

GWT:

        HorizontalPanel hrzPnlname = new HorizontalPanel();
        hrzPnlname.add(new Label("User Name: "));
        final TextBox txtUserName = new TextBox();
        txtUserName.setName("userName");        
        hrzPnlname.add(txtUserName);...

弹簧:

    @RequestMapping(method = RequestMethod.POST)
    public ModelAndView helloWorldFromForm(HttpServletRequest request)
    {
        Map<String, Object> model = new HashMap<String, Object>();
        System.out.println("------>nnnnnn" + request.getParameter("userName") + "nnnnn<-------");...

我使用的是GWT2.4。如有任何相关信息,我们将不胜感激。

谢谢!

您可以通过以下几种方式在GWT客户端和spring控制器之间共享数据:

  1. REST/JSON请求
    查看如何:使用一点JQuery从GWT调用REST
    另请参阅GWT原始文档("与服务器通信/JSON"部分)
    在我看来,这是与服务器通信的最佳方式,因为JSON是一个纯标准协议,它可以被第三方插件(例如jQuery)和其他web服务使用。

  2. Async GWT RMI(远程方法调用),由Google提供
    我认为这不是使用GWTRPC的最佳想法,看看为什么:4更多GWT反模式

  3. 将表单作为POST/GET请求直接提交给spring控制器(正如您试图做的那样)
    请参阅com.google.gwt.user.client.ui.FormPanel
    我可以重新建议您使用表单提交仅用于文件上传,因为浏览器将仅使用表单提交上传文件。对于所有其他操作,GWT中不需要表单,任何请求都可以使用ajax实现。

以下是一些资源的链接-http://technophiliac.wordpress.com/2008/08/24/giving-gwt-a-spring-in-its-step/以及将spring3mvc与GWT集成的经验。

最新更新