linked 2011-12-16 14:48
浏览 195
已采纳

spring表单值绑定

我在jsp里这样定义
method="post">


在提交后会访问下面的controller
@RequestMapping(params = "action=doLogon", method = RequestMethod.POST)
public ModelAndView doLogon(MemberForm form, HttpServletRequest request, HttpServletResponse response) throws NotLogonException {
String logonEmail = form.getEmail();
String password = form.getPassword();

MemberForm是一个POJO里面有email,password,等等一些属性

现在问题是spring的form标签的值绑定是如何进行的?也就是说,为什么我在doLogon方法里能使用form.getEmail();获得jsp提交的表单里的值。dispatcherservlet是如何执行这个步骤的。我想知道一下原理

PS:代码比较简陋,但大概的意思我想我叙述清楚了,谢谢大家了

  • 写回答

1条回答 默认 最新

  • lwcgglu 2011-12-16 15:41
    关注

    我举个例子:
    [code="java"]Object entity = context.getClassLoader().loadClass(
    "com.icom.ud.domain." + name.toUpperCase()).newInstance();

            // 数据绑定,spring提供了很好的工具。
            ServletRequestDataBinder binder = new ServletRequestDataBinder(
                    entity);
            binder.bind(request);[/code]
    

    可以通过反射获取 方法参数类型数组,有了class,通过以上方式就可以绑定到参数上了。
    参数如果是对象,必须可以用newInstance来实例化对象。
    到底 应该就是java反射来给属性(域)赋值了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?