【发布时间】:2011-04-21 13:32:54
【问题描述】:
我正在使用没有框架的 Servlet 和 JSP 来学习我的 SCWCD。我有一个简单的表单,我希望参数自动绑定到 bean。在不编写绑定代码或使用框架的情况下,这是否可能?
谢谢
【问题讨论】:
标签: java jsp servlets javabeans
我正在使用没有框架的 Servlet 和 JSP 来学习我的 SCWCD。我有一个简单的表单,我希望参数自动绑定到 bean。在不编写绑定代码或使用框架的情况下,这是否可能?
谢谢
【问题讨论】:
标签: java jsp servlets javabeans
不,不是。你应该使用一些框架,我想这会是一个矫枉过正。
所以你可以做的是迭代 request.getParameterMap() 键并将值设置为具有相应字段名称的对象(通过反射)
【讨论】:
您可以使用<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 完成)。
【讨论】:
好吧,如果没有“框架”,您将无法做到这一点。但是您可以使用 Jakarta BeanUtils (http://commons.apache.org/beanutils/),更准确地说是 servlet 中的静态方法 BeanUtils.populate。例如:
BeanUtils.populate (myBean, request.getParameterMap());
记住:输入的属性名称必须与 bean 属性匹配,好吗?
【讨论】: