当前位置: 首页 > 知识库问答 >
问题:

更改Spring MVC的根URL

祁默
2023-03-14

当我运行我的项目时,起始网址是 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;
    }

 }

数据库配置.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;
}
}

共有1个答案

丁恩
2023-03-14

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

 类似资料:
  • 在Apache 2.4中更改根目录时遇到问题。9在Mac OS X优胜美地10.10上。2.我正在使用本教程:http://coolestguidesontheplanet.com/forbidden-403-you-dont-have-permission-to-access-username-on-this-server/ 当我导航到http://localhost/~Owner/,我得到40

  • 我在spring boot项目中使用了swagger-springmvc,一切正常,但当我将swagger-springmvc ui依赖项添加到项目中时,swagger ui会重载基本url的请求映射。我很喜欢舒尔,有一种方法可以将UI指向另一个url。有人知道如何更改swagger ui的默认路径吗?

  • 这是我的url 用于登录-<代码>http://localhost/ang/#/login 对于仪表板-<代码>http://localhost/ang/#/dashboard 这是我的html的body标签 如果这是当前的url是,那么正文应该有标记,即, 否则它应该有 我试图在php中实现这一点,因为我不能像这里所说的那样在 这在AngularJS本身中可能做到吗? 更新: 我试着用Angul

  • 问题内容: 我已经完成了一次Google搜索,并搜索了我的两本python初学者书籍,以查找执行此操作的方法。我认为这必须是一个简单的任务。基本上,我正在与python一起使用pygame。 我希望如果我单击button1_image,它会更改为button1select_image,对吗?如果单击button2_image,它将button1select_image设置回button1_imag

  • 我想更改模式命名空间从 到 因为它支持“覆盖”。但它显示错误: W3C XML模式的根元素应该是

  • 我有一个带有ActionListener的JRadioButton,但我不知道如何在点击另一个面板时触发JButton的图标更改。下面列出了两者的代码。选择正确的单选按钮后,图像需要从左键切换到右键。 }