【问题标题】:Changing Root URL of Spring MVC更改 Spring MVC 的根 URL
【发布时间】:2016-07-13 14:04:25
【问题描述】:

当我运行我的项目时,起始 url 是 http://localhost:8080/shah/

我想将网址设为 http://localhost:8080/shah/welcome

这里,一个控制器的方法有@RequestMapping("/welcome")

在哪里更改根网址??

我正在使用带有以下类的基于注释的配置:

Initializer.java

@Order(1)
public class Initializer extends
    AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] {DatabaseConfig.class };
    }

     @Override
    protected Class<?>[] getServletConfigClasses() {
         return new Class<?>[] { WebAppConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

}

WebAppConfig.java

@Configuration
@EnableWebMvc
@ComponentScan("com.ism.shah")
public class WebAppConfig extends WebMvcConfigurerAdapter {

    @Bean
    public UrlBasedViewResolver setupViewResolver() {
        UrlBasedViewResolver resolver = new UrlBasedViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setViewClass(JstlView.class);
        return resolver;
    }

    // Maps resources path to webapp/resources
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations(
            "/resources/");
    }

    // Provides internationalization of messages
    @Bean
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource source = new 
                         ResourceBundleMessageSource();
        source.setBasename("messages");
        return source;
    }

 }

DatabaseConfig.java

@Configuration
@EnableTransactionManagement
@ComponentScan("com.ism.shah")
@PropertySource("classpath:database.properties")
public class DatabaseConfig {

private static final String PROPERTY_NAME_DATABASE_DRIVER   = "db.driver";
private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";
private static final String PROPERTY_NAME_DATABASE_URL      = "db.url";
private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";

private static final String PROPERTY_NAME_HIBERNATE_DIALECT = 
                "hibernate.dialect";
private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = 
                "hibernate.show_sql";
private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = 
                 "entitymanager.packages.to.scan";

@Resource
private Environment env;

@Bean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();

    dataSource.setDriverClassName
    (env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
    dataSource.setUrl(env.getRequiredProperty
            (PROPERTY_NAME_DATABASE_URL));
    dataSource.setUsername(env.getRequiredProperty
                 (PROPERTY_NAME_DATABASE_USERNAME));
    dataSource.setPassword(env.getRequiredProperty
             (PROPERTY_NAME_DATABASE_PASSWORD));

    return dataSource;
}

private Properties hibProperties() {
    Properties properties = new Properties();
    properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, 
         env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_DIALECT));
    properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, 
         env.getRequiredProperty(PROPERTY_NAME_HIBERNATE_SHOW_SQL));
    return properties;  
}

@Bean
public HibernateTransactionManager transactionManager() {
    HibernateTransactionManager transactionManager = new 
        HibernateTransactionManager();
    transactionManager.setSessionFactory(sessionFactory().getObject());
    return transactionManager;
}

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactoryBean = new 
          LocalSessionFactoryBean();
    sessionFactoryBean.setDataSource(dataSource());

      sessionFactoryBean.setPackagesToScan
      (env.getRequiredProperty(
        PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN));
    sessionFactoryBean.setHibernateProperties(hibProperties());
    return sessionFactoryBean;
}
}

【问题讨论】:

  • 您需要将应用部署为ROOT.war
  • 你的控制器类在哪里?显示出来。

标签: spring spring-mvc spring-security


【解决方案1】:

如果您使用的是 Eclipse 或只是 STS。
第1步。从服务器选项卡下的服务器中删除您的项目。
第2步。右键单击项目,选择属性,Web 项目设置,将此处的上下文根从“shah”更新为“shah/welcome”。
然后您可以在受尊重的服务器上再次运行您的项目。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 2015-06-14
    • 1970-01-01
    • 2015-07-20
    • 2012-08-25
    • 2013-03-04
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多