0

listboxes 、 textboxes の値を入力する必要があります..サーブレットからのほとんどすべてのフォーム入力要素。オブジェクトを JSP ページに送信し、そこに入力要素の値を設定する (タグ ライブラリ JSTL を使用) ため、難しいことがわかりました。

サーブレット自体からすべての入力要素の値を設定する方法はありますか? たとえば、 textfield の値を設定する必要がある場合、サーブレットで

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 フレームワークには独自の学習曲線がありますが、巨大なサービスを提供します (データ バインディングはその 1 つです)。1 つ選んで学んでください。Stripes、Spring MVC、Play など、多数あります。Stripes はそのシンプルさとデザインの良さから気に入っています。

于 2012-07-26T06:06:42.227 に答える
1

何らかの理由で MVC フレームワークを使用したくない場合は、Apache Commons BeanUtilsを使用してください。

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

それでおしまい。Bean プロパティ名がリクエスト パラメータ名と正確に一致することを確認するだけで済みます。

ただし、MVC フレームワークは、変換、検証、イベント リスニング、アクションの実行、動的レンダリングなど、リクエスト パラメーターの適用以外にも多くの利点を提供します。したがって、いくつかの個別のライブラリを組み合わせて作業を楽にする代わりに、1 つのオールインワン MVC フレームワークだけを使用することができます。JB Nizet が言及した要求ベースの MVC フレームワークの次に、JSFなど、(HTML/CSS/JS ボイルパーレートを排除するという点で) はるかに抽象化されたコンポーネント ベースの MVC フレームワークもあります。

于 2012-07-26T17:04:44.110 に答える