Изображение не отображается в jsp [duplicate]

Импорт на странице.ts

 import { Component } from '@angular/core';
 import { IonicPage, NavController, NavParams } from 'ionic-angular';
 import { AngularFireDatabase} from 'angularfire2/database';
 import { Observable } from "rxjs/Observable";
 import { ShoppingItem } from '../../model/shoppingitem';

импортирует поставщика прямо из вашего провайдера

 import { FirebaseProvider } from '../../providers/firebase/firebase';

 export class Page {

  shoppingItems:Observable<ShoppingItem[]>;

 constructor(public navCtrl: NavController, 
             public firebaseProvider: FirebaseProvider) {

                this.shoppingItems=this.firebaseProvider
                .getShoppingItem()
                .snapshotChanges()
                .map(
                  changes=>{
                    return changes.map(c=>({
                      key:c.payload.key, ...c.payload.val(),
                    }));
                  }
                );
          }
        }

     }

firebaseProvider

обратите внимание на 'shopping-list' это таблица в базе данных firebase

  private itemListRef = this.afDatabase.list<ShoppingItem>('shopping-list');

  constructor(private afDatabase: AngularFireDatabase) {}

 .getShoppingItem(){

   return this.itemListRef;

  }
 }

Ваша модель shoppingitem

 export interface ShoppingItem{
  key?:string;
  }
13
задан BalusC 23 November 2012 в 03:15
поделиться

2 ответа

У вас есть 2 варианта:

  1. Используйте более конкретный шаблон URL, например /app/* или *.do, а затем пусть все ваши запросы на страницы соответствуют этому шаблону URL. См. Также веб-приложения Design Patterns
  2. То же, что и 1, но вы хотите скрыть отображение сервлета с URL-адреса запроса; вы должны поместить все статические ресурсы в общую папку, такую ​​как /static или /resources, и создать фильтр, который проверяет, не совпадает ли URL-адрес запроса, а затем перенаправляется на сервлет. Вот пример, который предполагает, что ваш сервлет-контроллер является @WebServlet("/app/*"), а фильтр - @WebFilter("/*"), и все ваши статические ресурсы находятся в папке /resources.
    HttpServletRequest req = (HttpServletRequest) request;
    String path = req.getRequestURI().substring(req.getContextPath().length());
    
    if (path.startsWith("/resources/")) {
        chain.doFilter(request, response); // Goes to default servlet.
    } else {
        request.getRequestDispatcher("/app" + path).forward(request, response); // Goes to your controller.
    }
    
    См. также Как получить доступ к статическим ресурсам при сопоставлении глобального сервлет-контроллера контроллера на /*.
18
ответ дан Community 24 August 2018 в 16:20
поделиться

Я знаю, что это старый вопрос, и я думаю, что ответ @BalusC, вероятно, отлично работает. Но я не могу изменить URL-адрес приложения JSF, над которым я работаю, поэтому просто просто проверяю путь и возвращаю, если он относится к статическим ресурсам:

    String path = request.getRequestURI().substring(request.getContextPath().length());
    if (path.contains("/resources/")) {
        return;
    }

Это отлично работает для меня.

0
ответ дан Tunde Michael 24 August 2018 в 16:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: