从Spring Controller访问GWT表单值

时间:2012-01-17 07:03:20

标签: java spring gwt

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

我试图使用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("------>\n\n\n\n\n\n" + request.getParameter("userName") + "\n\n\n\n\n<-------");...

我正在使用GWT 2.4。任何有关此事的信息都将受到高度赞赏。

谢谢!

2 个答案:

答案 0 :(得分:2)

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

  1. REST / JSON请求
    怎么看: Calling REST from GWT with a little bit of JQuery
    另请参阅原始GWT文档(“与服务器/ JSON通信”部分)
    在我看来,这是与服务器通信的最佳方式,因为JSON是纯标准协议,可以由第三方插件(例如jQuery)和其他Web服务使用。

  2. Async GWT RMI(远程方法调用),由Google提供 我认为这不是使用GWT RPC的最佳选择,请参阅原因: 4 More GWT Antipatterns

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

答案 1 :(得分:1)