0

Spring によって処理され、クラウド プラットフォームとして Google App Engine も使用する sevlet があります。

このサーブレットを別のページにリダイレクトしたい:

@Controller

パブリック クラス CustomerController {

@RequestMapping(value = "/", method = RequestMethod.GET)
public String listAllFeedsOnIndexPage(ModelMap map) throws JSONException {
   return "invite";
}

@RequestMapping(method = RequestMethod.GET)
public ModelAndView add(HttpServletRequest request, ModelMap model) {

    String firstName = request.getParameter("firstName");
    String lastName = request.getParameter("lastName");
    String email = request.getParameter("email");

    System.out.println(email);
    System.out.println(firstName);
    System.out.println(lastName);

    Customer c = new Customer();
    c.setFirstName(firstName);
    c.setLastName(lastName);
    c.setEmail(email);
    c.setDate(new Date());

    PersistenceManager pm = PMF.get().getPersistenceManager();
    try {
        pm.makePersistent(c);
    } finally {
        pm.close();
    }

    return new ModelAndView("redirect:thankYou");

}

My App Engine 出力: App Engine サーバーの初期化 2013 年 3 月 30 日午後 1 時 28 分 26 秒 com.google.apphosting.utils.config.EarHelper logNotAnEar 情報: ディレクトリ 'C:\Users\user\workspace\LandingPage\war' はありませんEAR ディレクトリ。ファイル C:\Users\user\workspace\LandingPage\war\appengine-application.xmlappengine-application.xml が検出されませんでした。2013 年 3 月 30 日 1:28:26 午後 com.google.apphosting.utils.config.EarHelper logNotAnEar 情報: ディレクトリ 'C:\Users\user\workspace\LandingPage\war' は EAR ディレクトリではありません。ファイル C:\Users\user\workspace\LandingPage\war\appengine-application.xmlappengine-application.xml が検出されませんでした。2013 年 3 月 30 日 1:28:26 午後 com.google.apphosting.utils.config.EarHelper logNotAnEar 情報: ディレクトリ 'C:\Users\user\workspace\LandingPage\war' は EAR ディレクトリではありません。ファイル C: \Users\user\workspace\LandingPage\war\appengine-application.xmlappengine-application.xml が検出されませんでした。2013 年 3 月 30 日 1:28:26 午後 com.google.apphosting.utils.config.EarHelper logNotAnEar 情報: ディレクトリ 'C:\Users\user\workspace\LandingPage\war' は EAR ディレクトリではありません。ファイル C:\Users\user\workspace\LandingPage\war\appengine-application.xmlappengine-application.xml が検出されませんでした。2013 年 3 月 30 日 1:28:26 午後 com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml INFO: 正常に処理されました C:\Users\user\workspace\LandingPage\war\WEB-INF/appengine-web.xml 3 月 30 日. 28:26 PM com.google.appengine.tools.development. Spring ルート WebApplicationContext の初期化 2013 年 3 月 30 日 12:28:28 PM org.springframework.web.context.ContextLoader initWebApplicationContext 情報: ルート WebApplicationContext: 初期化開始.XmlWebApplicationContext prepareRefresh 情報: ルート WebApplicationContext を更新しています: 開始日 [Sat Mar 30 12:28:29 UTC 2013]; コンテキスト階層のルート 2013 年 3 月 30 日 12:28:29 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 情報: ServletContext リソース [/WEB-INF/mvc-dispatcher-servlet.xml] から XML Bean 定義をロードしています30、2013 12:28:29 PM org.springframework.context.annotation.ClassPathBeanDefinitionScanner registerDefaultFilters INFO: JSR-330 'javax.inject.Named' springframework.web.servlet.view.InternalResourceViewResolver#0,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; ファクトリ階層のルート 2013 年 3 月 30 日 12:28:31 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod INFO: Mapped "{[],methods=[GET],params=[],headers =[],consumes=[],produces=[],custom=[]}" パブリック org.springframework.web.servlet.ModelAndView com.landing.controller.CustomerController.add(javax.servlet.http.HttpServletRequest,org .springframework.ui.ModelMap) 2013 年 3 月 30 日午後 12:28:31 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod 情報: マップされた "{[/]、methods=[GET]、params= [],headers=[],consumes=[],produces=[],custom=[]}" をパブリック Java に追加します。名前空間 'mvc-dispatcher-servlet' の WebApplicationContext を更新しています: 起動日 [Sat Mar 30 12:28:32 UTC 2013]; 親: ルート WebApplicationContext 2013 年 3 月 30 日 12:28:32 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 情報: ServletContext リソース [/WEB-INF/mvc-dispatcher-servlet.xml] から XML Bean 定義をロードしています2013 年 3 月 30 日 12:28:32 PM org.springframework.context.annotation.ClassPathBeanDefinitionScanner registerDefaultFilters INFO: JSR-330 'javax.inject.Named' アノテーションが見つかり、コンポーネント スキャンでサポートされました。 springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor 情報: JSR-330 'javax.inject.Inject' アノテーションが検出され、自動配線用にサポートされました 2013 年 3 月 30 日 12:28:32 PM org.springframework. RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver# 0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet. mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.view.InternalResourceViewResolver#0,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; 親: org.springframework.beans.factory.support.DefaultListableBeanFactory@9b4ed7a 2013 年 3 月 30 日 12:28:32 PM org.springframework.web.servlet.mvc.method.localhost:8888/ 2013 年 3 月 30 日 12:28:32 PM com.google.appengine.tools.development.AbstractServer の起動情報: 管理コンソールは http:// で実行されています。localhost:8888/_ah/admin 2013 年 3 月 30 日 1:28:32 PM com.google.appengine.tools.development.DevAppServerImpl start INFO: Dev App Server は現在実行中です null null null null null null 2013 年 3 月 30 日 1:28: 39 PM com.google.appengine.api.datastore.dev.LocalDatastoreService init INFO: ローカル データストアが初期化されました: タイプ: 高レプリケーション ストレージ: C:\Users\user\workspace\LandingPage\war\WEB-INF\appengine-generated\local_db .bin 2013 年 3 月 30 日 1:28:39 PM com.google.appengine.api.datastore.dev.LocalDatastoreService 読み込み情報: バッキング ストア、C:\Users\user\workspace\LandingPage\war\WEB-INF\appengine - generated\local_db.bin、存在しません。作成されます。null null null null null null null

ただし、フォームでEnterキーを押すと。データの 1 つのエントリと多数のエントリを取得しnullます。リダイレクトは他のページにリダイレクトされず、再帰的にリダイレクトされるようです。

その動作を修正する方法はありますか?

4

1 に答える 1

1

このようなものを試すことができます。成功したフォームの投稿で成功ページを返しています。

@RequestMapping(value="sendData" ,method = RequestMethod.POST)
public String add(HttpServletRequest request, ModelMap model) {

String firstName = request.getParameter("firstName");
String lastName = request.getParameter("lastName");
String email = request.getParameter("email");

System.out.println(email);
System.out.println(firstName);
System.out.println(lastName);

Customer c = new Customer();
c.setFirstName(firstName);
c.setLastName(lastName);
c.setEmail(email);
c.setDate(new Date());

PersistenceManager pm = PMF.get().getPersistenceManager();
try {
    pm.makePersistent(c);
} finally {
    pm.close();
}

return "successpage";
}
于 2013-03-30T19:13:55.883 に答える