Я занимаюсь разработкой весеннего загрузочного приложения и пытаюсь использовать 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();
}
}