Доступ к сохраненному изображению и его отображение, возвращение документа на ноль, изображение не отображается - PullRequest
0 голосов
/ 27 июня 2019

У меня есть два приложения java / spring-boot, которые связаны через базу данных и логины.В одном приложении это база данных информации.Затем я использую второе приложение, чтобы поделиться только соответствующей информацией для каждого вошедшего в систему пользователя.Я хочу показать зарегистрированному пользователю список носителей, который хранится в таблице sql «доступа к рынку».У меня есть список, показывающий, но нужно взять изображение для каждого носителя.Изображение загружается через другое приложение, которое содержит информацию.Загруженное изображение затем находится в папке загрузки каталога на сервере: directory.for.carrier.appointment.files = C: \ Tomcat \ mysite.com \ carrier-files \ и сохраняет имя файла изображения в таблице sql «document»,У меня проблемы с доступом к изображениям.Я не уверен, что у меня неправильный путь или неправильный способ доступа к хранилищу документов.

Когда я запускаю отладчик, я вижу нужную мне информацию в методе marketAccess.Проблема в том, что документ возвращается как ноль и не отображает изображение в HTML.Это потому, что я устанавливаю атрибут модуля внутри цикла forEach?

Есть ли лучший способ получить доступ к документу .storage?

Ниже приведен мой код, любые предложения по исправлениюбудет принята с благодарностью.

    @RequestMapping(value="/marketAccess")
    public String marketAccess(Model model, @ModelAttribute("loggedUser")ResourceWebsiteUser user, CarrierAppointment carrierAppointment){
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        user=userRepository.findByEmail(auth.getName());
        user.getClient().getId();
        List<MarketAccess> marketAccesses = marketAccessRepository.findByClient(user.getClient());
        for(MarketAccess ma: marketAccesses) {
            carrierAppointment= ma.getCarrierAppointment();
            List<Document> docs= documentRepository.findByCarrierAppointment(carrierAppointment);
            for (Document doc : docs) {
                if (doc.getType() == "Logo") {
                    model.addAttribute("doc", doc);
                }
            }
        }
        model.addAttribute("marketAccesses", marketAccesses);
        model.addAttribute("loggedUser",user);
        return "marketAccess";
    }

<div class="row">
        <th:block th:each="ma: ${marketAccesses}">
            <div class="col s6 m3 scale-transition scale-out">
                <div class="white black-text valign-wrapper cacard" style="justify-content: center;">
                    <img th:if="${doc!=null}" th:src="/carrier-files/+${ma.carrierAppointment.parentCompanyCarrier+'-'+ma.carrierAppointment+'/'+doc.storage}"/>
                    <a target="_blank" th:href="${ma.carrierAppointment.quotingWebsite}"> <span class="center-align" style="width:100%; padding:10px;" th:text="${ma.carrierAppointment.parentCompanyCarrier}">
                    </span></a>
                </div>
            </div>
        </th:block>
        </div>

Document.java

@Entity
@Table(name="Document")
public class Document{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "DocumentId")
    private Long id;
    private String storage;
    private String type;
    @ManyToOne
    @JoinColumn(name = "Client")
    private Client client;
    @ManyToOne
    @JoinColumn(name = "CarrierAppointment")
    private CarrierAppointment carrierAppointment;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getStorage() {
        return storage;
    }

    public void setStorage(String storage) {
        this.storage = storage;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }

    public CarrierAppointment getCarrierAppointment() {
        return carrierAppointment;
    }

    public void setCarrierAppointment(CarrierAppointment carrierAppointment) {
        this.carrierAppointment = carrierAppointment;
    }
}

CarrierAppt.java

@Entity
@Table(name="CarrierAppointment")
@EntityListeners(AuditingEntityListener.class)
public class CarrierAppointment {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "CarrierAppointmentId")
    private Long id;
    private String parentCompanyCarrier;
    private String linesOfBusiness;
    private String quotingWebsite;
    private String appetite;
    private String knownForPersonal;
    private String knownForCommercial;

    public Long getId() {
        return id;
    }

    public String getParentCompanyCarrier() {
        return parentCompanyCarrier;
    }

    public String getLinesOfBusiness() {
        return linesOfBusiness;
    }

    public String getQuotingWebsite() {
        return quotingWebsite;
    }

    public String getAppetite() {
        return appetite;
    }

    public String getKnownForPersonal() {
        return knownForPersonal;
    }

    public void setKnownForPersonal(String knownForPersonal) {
        this.knownForPersonal = knownForPersonal;
    }

    public String getKnownForCommercial() {
        return knownForCommercial;
    }

    public void setKnownForCommercial(String knownForCommercial) {
        this.knownForCommercial = knownForCommercial;
    }
}

MarketAccess.java

@Entity
@Table(name="MarketAccess")
public class MarketAccess {

    @Override
    public String toString(){
        return carrierAppointment.getParentCompanyCarrier();
    }


    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "MarketAccessId")
    private Long id;
    @ManyToOne
    @JoinColumn(name="client")
    private Client client;
    @ManyToOne
    @JoinColumn(name = "carrier")
    private CarrierAppointment carrierAppointment;
    private String interest;
    private Boolean commercialLines;
    private Boolean personalLines;
    private String username;
    private String password;
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }

    public CarrierAppointment getCarrierAppointment() {
        return carrierAppointment;
    }

    public void setCarrierAppointment(CarrierAppointment carrierAppointment) {
        this.carrierAppointment = carrierAppointment;
    }

    public String getInterest() {
        return interest;
    }

    public void setInterest(String interest) {
        this.interest = interest;
    }

    public Boolean getCommercialLines() {
        return commercialLines;
    }

    public void setCommercialLines(Boolean commercialLines) {
        this.commercialLines = commercialLines;
    }

    public Boolean getPersonalLines() {
        return personalLines;
    }

    public void setPersonalLines(Boolean personalLines) {
        this.personalLines = personalLines;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...