【问题标题】:Redirect Servlet to the a div container将 Servlet 重定向到 div 容器
【发布时间】:2013-03-21 01:26:47
【问题描述】:

我有一个由 Spring 处理的 sevlet,并且还使用 Google App Engine 作为云平台。

我想将此 servlet 重定向到另一个页面:

@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");

}

我的 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 Mär 2013 年 3 月 30 日下午 1:28:26 com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml INFO: 成功处理 C:\Users\user\workspace\LandingPage\war\WEB-INF/web.xml 2013 年 3 月 30 日 下午 1 点 28 分 26 秒 com.google.appengine.tools.development.SystemPropertiesManager setSystemProperties INFO:覆盖系统属性键 'java.util.logging.config.file',值 'C:\Users\user\Desktop\eclipse-java-juno-SR1-win32-x86_64\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.7.5\appengine-java-sdk-1.7.5\config\ sdk\logging.properties' 值为 'WEB-INF/logging.properties' 来自 'C:\Users\user\workspace\LandingPage\war\WEB-INF\appengine-web.xml' 2013 年 3 月 30 日下午 1:28:26 com.google.apphosting.utils.jetty.JettyLogger info INFO:通过 JettyLogger(null) 登录 com.google.apphosting.utils.jetty.JettyLogger 2013 年 3 月 30 日下午 12:28:27 com.google.apphosting.utils.jetty.JettyLogger 信息信息:jetty-6.1.x 2013 年 3 月 30 日下午 12:28:28 com.google.appengine.tools.development.ApiProxyLocalImpl 日志信息: javax.servlet.ServletContext 日志:初始化 Spring 根 WebApplicationContext 2013 年 3 月 30 日下午 12:28:28 org.springframework.web.context.ContextLoader initWebApplicationContext 信息:根 WebApplicationContext: 初始化开始于 2013 年 3 月 30 日 12:28:29 PM org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh INFO:刷新根 WebApplicationContext:启动 日期 [2013 年 3 月 30 日星期六 12:28:29 UTC];上下文层次结构的根 30 月 30 日, 2013 下午 12:28:29 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: 加载 XML bean 定义 ServletContext 资源 [/WEB-INF/mvc-dispatcher-servlet.xml] 30 月, 2013 下午 12:28:29 org.springframework.context.annotation.ClassPathBeanDefinitionScanner registerDefaultFilters 信息:JSR-330 'javax.inject.Named' 注释 找到并支持组件扫描 2013 年 3 月 30 日下午 12:28:30 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor 信息:找到 JSR-330 'javax.inject.Inject' 注释并 支持自动装配 2013 年 3 月 30 日 12:28:30 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO:预实例化单例 org.springframework.beans.factory.support.DefaultListableBeanFactory@9b4ed7a: 定义 bean [customerController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation .internalPersistenceAnnotationProcessor,mvcContentNegotiationManager,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.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.springfram ework.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]; 工厂层级的根源 2013 年 3 月 30 日 12:28:31 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod 信息:已映射 "{[],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.lang.String com.landing.controller.CustomerController.listAllFeedsOnIndexPage(org.springframework.ui.ModelMap) 抛出 com.google.appengine.labs.repackaged.org.json.JSONException Mär 2013 年 3 月 30 日下午 12:28:31 org.springframework.web.context.ContextLoader initWebApplicationContext 信息:根 WebApplicationContext: 初始化在 3010 毫秒内完成 2013 年 3 月 30 日 12:28:32 PM com.google.appengine.tools.development.ApiProxyLocalImpl 日志信息: javax.servlet.ServletContext 日志:初始化 Spring FrameworkServlet 'mvc-dispatcher' 2013 年 3 月 30 日下午 12:28:32 org.springframework.web.servlet.DispatcherServlet initServletBean 信息:FrameworkServlet 'mvc-dispatcher':初始化开始三月 2013 年 3 月 30 日下午 12:28:32 org.springframework.web.context.support.XmlWebApplicationContext prepareRefresh INFO:为命名空间刷新 WebApplicationContext 'mvc-dispatcher-servlet':启动日期 [2013 年 3 月 30 日星期六 12:28:32 UTC]; 父:根 WebApplicationContext 2013 年 3 月 30 日下午 12:28:32 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: 加载 XML bean 定义 ServletContext 资源 [/WEB-INF/mvc-dispatcher-servlet.xml] 30 月, 2013 年 12 点 28 分 32 秒 org.springframework.context.annotation.ClassPathBeanDefinitionScanner registerDefaultFilters 信息:JSR-330 'javax.inject.Named' 注释 找到并支持组件扫描 2013 年 3 月 30 日下午 12:28:32 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor 信息:找到 JSR-330 'javax.inject.Inject' 注释并 支持自动装配 2013 年 3 月 30 日 12:28:32 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO:预实例化单例 org.springframework.beans.factory.support.DefaultListableBeanFactory@1d3f82cd: 定义 bean [customerController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation .internalPersistenceAnnotationProcessor,mvcContentNegotiationManager,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.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.springfram ework.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 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod 信息:已映射 "{[],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:32 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping registerHandlerMethod 信息:已映射 "{[/],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" 到公共 java.lang.String com.landing.controller.CustomerController.listAllFeedsOnIndexPage(org.springframework.ui.ModelMap) 抛出 com.google.appengine.labs.repackaged.org.json.JSONException Mär 2013 年 3 月 30 日下午 12:28:32 org.springframework.web.servlet.DispatcherServlet initServletBean 信息:FrameworkServlet 'mvc-dispatcher': 初始化在 520 毫秒内完成 2013 年 3 月 30 日 12:28:32 PM com.google.apphosting.utils.jetty.JettyLogger 信息信息:已开始 SelectChannelConnector@0.0.0.0:8888 2013 年 3 月 30 日 12:28:32 PM com.google.appengine.tools.development.AbstractServer 启动信息: 服务器默认运行在 http://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 com.google.appengine.tools.development.DevAppServerImpl 启动信息: 开发应用服务器现在正在运行 null null null null null null 3 月 30 日, 2013 下午 1:28:39 com.google.appengine.api.datastore.dev.LocalDatastoreService 初始化 信息:本地数据存储已初始化:类型:高复制存储: C:\Users\user\workspace\LandingPage\war\WEB-INF\appengine-generated\local_db.bin 2013 年 3 月 30 日下午 1:28:39 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 时。我得到一个数据条目和很多null 条目。在我看来,重定向并没有重定向到另一个页面,它递归地重定向回来。

知道如何解决这种行为吗?

【问题讨论】:

  • 表单的作用是什么?它是否也指向 thankYou 网址?

标签: java google-app-engine servlets redirect


【解决方案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";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    相关资源
    最近更新 更多