1

Spring MVC-3 では、フォーム送信を行うと、フォーム バッキング オブジェクトが削除されません。私はSpring MVCで、フォーム送信後にベーキングオブジェクトを削除すると考えました。

私は正しいですか、それともここで何が起こったのか誰か説明できますか?

PS

<form:form id="id1" commandName="command1" modelAttribute="command1" method="post">

送信を行うと、フォームにビン化されたそのモデル属性は、セッションのある時点で削除されますよね?.

私が知りたいのは、コマンド オブジェクトが削除されるポイントです。

4

1 に答える 1

0

いくつかのコードを提供していただけると助かります。バグかもしれません.MVCには実際にはバッキングオブジェクトがありません。できることは、オブジェクトをモデル マップに配置することだけであり、それらは各リクエストの後に削除されます。フォーム ポストを行う場合、Spring MVC が行うことは、フォーム入力をコントローラー内のオブジェクトにマップすることだけです。

形:

<form action="/some-path" method="post">
    <input type="text" name="some_property"  />
    <input type="submit" value="Submit" />
</form>

コントローラ:

@RequestMapping(value="/some-path" method = RequestMethod.POST)   
public ModelAndView createItem(SomeObject someObject, BindingResult result) {
// ...
}

マッピング オブジェクト:

public class SomeObject {

    private String some_property;

    // getter, setter

}

オブジェクトを Bean ( など) として宣言しなかった場合@Named@Componentまたはモデル マップに追加した場合:

ModelAndView mav = new ModelAndView();
mav.addObject("someObject,someObject);

その後、コントローラーが終了すると消えます。

編集 jsp タグに気づきませんでした..あまり変わっていないと思います..

于 2012-08-06T07:51:02.547 に答える