AngularJS:templateUrl适用于HTML模板文件,但不适用于.JSP

时间:2017-07-08 14:38:40

标签: javascript java html angularjs jsp

我在angularJS中构建一个控制器模板,简单如下:

var maintest = angular.module("mainTest", []);
angular.module("mainTest")
        .component('mainscreen', {
        templateUrl: './services/fakeService.html',
        controller: function example(){
                    this.userData = 'Jospeh';
                }
        } );

如果模板是如上所示的HTML文件,它可以正常工作。但是,如果您尝试使用.JSP模板,它根本不会(下面的fakeService.jsp代码)。

HTML(fakeService.html):

<!DOCTYPE html>
<div>
    Data to show: {{$ctrl.userData}}
</div>

HTML的输出(从组件主屏幕调用):

  

数据显示:Jospeh

JSP(fakeService.jsp):

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<% 
out.print("Test if JSP code is processed.");
%>
<div>
    Data to show: {{$ctrl.userData}}
</div>

JSP的输出(从组件主屏幕调用):

  

测试是否处理了JSP代码。要显示的数据:{{$ ctrl.userData}}

我可以使用AngularJS + JSP吗?如果可以的话,这个简单的例子怎么会起作用呢?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

我不确定你是如何实现服务器端的。我建议遵循MVC设计方法并使模板扩展不可知。以下是我的项目中的示例

 // route for the home page
 .when('/home', {
     templateUrl : 'home',
     controller  : 'homeController'
 })

在服务器端,我有一个MVC控制器,它捕获uri“/ home”,解析视图(它取决于视图解析器中的逻辑,无论是jsp,还是html或者无论如何)并将结果传回去。这种情况下,angular不知道服务器端是什么,这也促进了松耦合。