【问题标题】:binding form parameters to a bean using just Servlets and JSP - possible?仅使用 Servlet 和 JSP 将表单参数绑定到 bean - 可能吗?
【发布时间】:2011-04-21 13:32:54
【问题描述】:

我正在使用没有框架的 Servlet 和 JSP 来学习我的 SCWCD。我有一个简单的表单,我希望参数自动绑定到 bean。在不编写绑定代码或使用框架的情况下,这是否可能?

谢谢

【问题讨论】:

    标签: java jsp servlets javabeans


    【解决方案1】:

    不,不是。你应该使用一些框架,我想这会是一个矫枉过正。

    所以你可以做的是迭代 request.getParameterMap() 键并将值设置为具有相应字段名称的对象(通过反射)

    【讨论】:

    • Fulvius 的答案提供了一种不直接使用反射的替代方案。
    【解决方案2】:

    您可以使用<jsp:useBean> 来做到这一点。

    <jsp:useBean id="form" class="com.example.Form" scope="request" />
    <jsp:setProperty name="form" property="*" />
    <jsp:include page="servletUrl" />
    

    将设置名称与请求参数名称匹配的所有 bean 属性(如果有的话),并且 bean 将在匹配 url-pattern/servletUrl 的 servlet 中作为请求属性可用。

    但是,您希望为此使用 servlet 和/或 MVC 框架,因为它将所有内容抽象出来并更好地控制操作和响应处理。这本质上是滥用 JSP(作为一种视图技术)作为控制器(应该(内)直接由 Servlet 完成)。

    【讨论】:

      【解决方案3】:

      好吧,如果没有“框架”,您将无法做到这一点。但是您可以使用 Jakarta BeanUtils (http://commons.apache.org/beanutils/),更准确地说是 servlet 中的静态方法 BeanUtils.populate。例如:

      BeanUtils.populate (myBean, request.getParameterMap());
      

      记住:输入的属性名称必须与 bean 属性匹配,好吗?

      【讨论】:

      • 谢谢,简单又好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多