すべてのフィールドに対してとEntityDemo
を持つ名前のクラスがあると仮定すると、次のようにする必要があると思います。Getters
Setters
@Controller
public class SearchEntityController {
@RequestMapping(value = "/search", method = RequestMethod.GET)
public ModelAndView getEntityDemoByID(@ModelAttribute("search") Search search, BindingResult result) {
EntityDemo entityDemo = null;
Map<String, Object> model = new HashMap<String, Object>();
if (search.getId() != null) {
int id = Integer.parseInt(search.getId());
entityDemo = DBHelper.getEntityDemo(id);
model.put("entityDemo", entityDemo);
}
return new ModelAndView(new RedirectView(pageIWantToRedirectTo), model);
}
}
次に、JSP で次のようなことを使用してJSTL
実行できます。${entityDemo.name}
name
EntityDemo
Getter
public String getName(){return this.name;}
私の知る限り、コントローラーメソッドはオブジェクト全体を返すのではなくString
、ビューの名前を示す値を返す\foo\bar\myPage.jsp
か、オブジェクト全体を返しModelAndView
ます (オブジェクトには 2 種類あり、1 つはportlet
完全な名前で、もう1 つは完全な名前になっています)。を持っていservlet
ます. この場合, フルネームに が含まれているものを使わなければなりませんservlet
. わかりやすくするために, フルネームと言うときは, それが存在するパッケージを含む名前を意味します. 記憶がよければ, あなたが探しているもの. for is inspringframework...servlet.ModelAndView
またはそのようなものです。
編集: 送信時にリダイレクトする場合は、2 つのコントローラーを作成する必要があります。1 つはフォームをレンダリングし、もう 1 つはフォームが送信されるとリダイレクトします。
JSP ページに関しては、xml ファイル名が必要ですdispatcher-servlet.xml
。の構成によって名前が異なる場合がありますweb.xml
が、すべての構造は<servletname>-servlet.xml
. という名前のプロパティがあるはずですviewResolver
(これは事実ですが、特定の IDE はあまりデータを入力しません。一方、Netbeans などの IDE はほとんどの初期構成をセットアップします)。これは、 に作用する別のコントローラーviews
です。view
それが行うことは、コントローラーで指定した名前の前後に項目を自動的に追加することです。通常、接頭辞pages/jsp/
と接尾辞を追加します.jsp
。したがって、次のパスを持つページがある場合pages/jsp/myPage.jsp
、コントローラーに渡す必要があるのはmyPage
. ページへのフル パスは、ビュー リゾルバーによって構築されます。URL 全体を渡すと、引き続き追加されるため、正しいパスを指定してもページは見つかりません。