当前位置: 首页 > 面试题库 >

带有AngularJS的Spring Boot

邓深
2023-03-14
问题内容

我有一个Spring
Boot项目,使用Jersey作为我的REST服务,并使用AngularJS进行前端开发。当我在不使用任何控制器的情况下运行它并转到index.html(位于
resource / static / index.html中 )时,它工作正常。当我添加一个控制器时,它呈现为字符串“
index.html”作为输出。Spring Boot配置:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

 @SpringBootApplication
 @ComponentScan(basePackages = {"com.cst.interfaces","com.cst.configuration","com.cst.application","com.cst.application.implmentation"})
 @EnableAutoConfiguration
 public class ApplicationConfiguration {
    public static void main(String args[]) throws Exception{
        SpringApplication.run(ApplicationConfiguration.class, args);
    }
    public ServletRegistrationBean jerseyServlet(){
        ServletRegistrationBean register = new ServletRegistrationBean(new ServletContainer(),"/*");
        register.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, JerseyInitalize.class.getName());
        return register;
    }
}

JerseyConfiguration:

import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
@Component
public class JerseyInitalize extends ResourceConfig{
    public JerseyInitalize(){
        super();
        this.packages("com.cst.interfaces");
    }
}

控制器类别:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Path("/home")
public class HomeResource {
    @GET
    @Produces("application/json")
    public String getString(){
        return "index.html";
    }
}

问题答案:

这是因为你标注了你的控制器@RestController,这是一个简写为@Controller@ResponseBody。后一个注释指示控制器将输出原样直接呈现到响应中。

使用@Controller的控制器,是 不是 REST风格代替。



 类似资料:
  • 问题内容: 当前,在我的项目中,我们正在使用JSDoc,我们最近开始实现Angular,并且我想继续使用JSDoc,以确保所有文档都位于同一位置。 我看过的人主要是说要使用ngDoc,但这并不是一个切实可行的选择,因为我们将始终使用单独的JavaScript,并且理想情况下,我会将所有内容整合在一起。 目前,这是我所拥有的,但是无法为run()的文档添加任何想法? 问题答案: 我也遇到了这个问题。

  • 问题内容: 我使用Spring Boot启动Web应用程序。它使用一个简单的主类来启动嵌入式tomcat服务器: 我想以他可以处理的angularjs html5mode的方式配置服务器 其他用户的相关发布表明你需要重定向到根目录。html5模式从网址中删除hashbag。如果刷新页面,则服务器找不到该页面,因为他不处hash。 问题答案: 我找到了可以接受的解决方案。 angularjs应用必须

  • 问题内容: 我正在开发一个使用angular作为客户端框架的应用程序,目前使用angular作为岩石,我真的很高兴,尽管现在我发现我经常复制和粘贴要组织成类层次结构的代码。例如,对话框共享一组通用的功能,需要打开,关闭它们,提供功能的代码也是从某些父BaseTypeaheadClass继承的首选对象,尽管我在angular中没有发现的一件事是组织这些层次结构。控制器,服务和提供者都在下面使用普通的

  • 问题内容: 我正在尝试对从JSON源填充的数据表进行排序。我的代码如下: HTML: JS: 小提琴:http : //jsfiddle.net/7czsM/1/ 如您所见,我试图将click函数添加到表标题中,以调用对数据进行排序的函数,但是它不起作用。 我已经在这里看到了这种方法的示例,该示例可以起作用:http : //jsfiddle.net/vojtajina/js64b/14/,但是当

  • 问题内容: 我正在尝试将AngularJS promise / then与递归函数一起使用。但是未调用then函数(错误,成功,通知回调均未调用)。 这是我的代码: 递归函数 然后 我认为,那时至少必须获得第一个通知回调。但是没有回调。然后不使用递归函数吗? 问题答案: 编辑-2015年11月11日, 如果您不在乎通知,则有一种更简洁的方法: 此处提供旧答案: 您可以持续不断地兑现承诺。

  • 问题内容: 我正在html 5模式下使用angularjs。似乎可以控制页面上的所有href。但是,如果我想链接到该应用程序同一域中的某个内容,但实际上不在该应用程序中,则该怎么办?一个示例是pdf。 如果我做的角度会尝试使用html5mode并使用路由提供程序来确定应该加载哪个视图。但是我实际上希望浏览器以常规方式转到该页面。 唯一的方法是与路由提供者制定规则,并使用window.locatio