我已经开始学习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。任何有关此事的信息都将受到高度赞赏。
谢谢!
答案 0 :(得分:2)
您可以通过以下几种方式在GWT客户端和弹簧控制器之间共享数据:
REST / JSON请求
怎么看:
Calling REST from GWT with a little bit of JQuery
另请参阅原始GWT文档(“与服务器/ JSON通信”部分)
在我看来,这是与服务器通信的最佳方式,因为JSON是纯标准协议,可以由第三方插件(例如jQuery)和其他Web服务使用。
Async GWT RMI(远程方法调用),由Google提供 我认为这不是使用GWT RPC的最佳选择,请参阅原因: 4 More GWT Antipatterns
将表单作为POST / GET请求直接提交给spring控制器(正如您尝试的那样)
请参阅com.google.gwt.user.client.ui.FormPanel
我可以重新建议您使用仅提交文件上传的表单,因为浏览器只会使用表单提交上传文件。对于所有其他操作,GWT中不需要表单,任何可以使用ajax实现的请求。
答案 1 :(得分:1)