0

我需要填充列表框、文本框的值。几乎所有来自我的 servlet 的表单输入元素。因为将对象发送到 JSP 页面并在那里填充输入元素的值(使用任何标记库 JSTL)我发现它很困难。

无论如何设置servlet本身的所有输入元素值?例如,如果我需要为 textfield 设置值,那么在我的 servlet

TextFieldBean tf = new TextFieldBean("userName");
tf.setValue("Test");

在我的jsp页面中

<input type="text" name="userName">
4

2 回答 2

1

这就是所有 MVC 框架(我所知道的)都允许做的事情。这是条纹的示例:

// in the Stripes action:
public Resolution displayForm() {
    this.userName = "Test";
    return new ForwardResolution("/displayForm.jsp");
}

// in the JSP
<s:form beanClass="com.foo.bar.SubmitFormAction" method="post">
    User Name : <s:text name="userName"/>
</s:form>

MVC 框架有自己的学习曲线,但它们提供了巨大的服务(数据绑定就是其中之一)。选择一个并学习:Stripes、Spring MVC、Play,……有几十种。我喜欢 Stripes 的简洁和良好的设计。

于 2012-07-26T06:06:42.227 回答
1

如果出于某种原因不想使用 MVC 框架,请使用Apache Commons BeanUtils

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

就是这样。您只需要确保 bean 属性名称与请求参数名称完全匹配。

然而,MVC 框架在应用请求参数之后提供了更多其他优势,例如转换、验证、事件侦听、执行操作、动态呈现等。因此,与其将几个单独的库拼凑在一起以使生活更轻松,不如只使用一个多合一的 MVC 框架。除了 JB Nizet 提到的基于请求的 MVC 框架之外,还有一些基于组件的 MVC 框架,它们更加抽象(如消除 HTML/CSS/JS 编译器),例如JSF

于 2012-07-26T17:04:44.110 回答