JSP-страница Spring Boot работает, но XmlViewResolver не работает - PullRequest
0 голосов
/ 24 сентября 2018

Я занимаюсь разработкой весеннего загрузочного приложения и пытаюсь использовать XmlViewResolver для просмотра PDF-файла из предопределенного шаблона с использованием itext.Успешно получаю страницу jsp, когда я получаю доступ к "/ welcome" и "/ invoice", но не удается, когда я пытаюсь "/ pdf".Пожалуйста, дайте мне знать, что не так.Почему bean-компонент pdf не работает должным образом?

Страница ошибки Whitelabel

Это приложение не имеет явного сопоставления для / error, поэтому вы видите это какОткат.

Произошла непредвиденная ошибка (тип = Не найдено, статус = 404).

/ WEB-INF / jsp / pdf.jsp

Ниже приведены коды

@Controller
public class MainController {

@RequestMapping("/welcome")
public String hello(Model model) {
    model.addAttribute("msg", "XmlViewResolver Demo");
    return "success";
}

@RequestMapping("/invoice")
public String getInvoiceInfo() {
    return "invoice";
}

@RequestMapping("/pdf")
public String getPdfInfo() {
    return "pdf";
}
}

JspConfig.java

@Component
public class JspConfig {
@Bean
public ViewResolver internalResourceViewResolver() {
    InternalResourceViewResolver bean = new InternalResourceViewResolver();
    bean.setViewClass(JstlView.class);
    bean.setPrefix("/WEB-INF/jsp/");
    bean.setSuffix(".jsp");
    bean.setOrder(2);
    return bean;
}
}

XmlConfig.java

@Configuration
public class XmlConfig {
@Bean
public XmlViewResolver xmlViewResolver() {
    XmlViewResolver resolver = new XmlViewResolver();
    Resource resource = new ClassPathResource("xml/user-view.xml");
    resolver.setLocation(resource);
    resolver.setOrder(1);
    return resolver;
}
}

user-view.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="invoice" class="org.springframework.web.servlet.view.JstlView">
    <property name="url" value="WEB-INF/template/invoice.jsp" />
</bean>

<bean id="pdf" class="com.example.config.PdfView">
    <property name="url" value="WEB-INF/template/invoiceTemplate.pdf" />
</bean>

PdfView.java

import com.lowagie.text.pdf.PdfStamper;

public class PdfView extends AbstractPdfStamperView implements MessageSourceAware {

@Override
protected void mergePdfDocument(Map<String, Object> model, PdfStamper   stamper, HttpServletRequest request, response) throws Exception {

    stamper.setFormFlattening(true);
    String customerName = (String) model.get("customerName");
    stamper.getAcroFields().setField("name", customerName);
    stamper.close();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...