Ich versuche nach pdf-Ansicht erstellen diese tutorialSpring MVC: Verständnis Sicht Bindung
Ich habe controller
:
@Controller
public class UserController {
@Autowired
UserDao userDao;
@RequestMapping(value = "/user_pdf", method = RequestMethod.GET, headers = "Accept=application/pdf")
public ModelAndView usersPdf(@ModelAttribute("model") ModelMap model) {
return new ModelAndView("pdfView", "listBooks", userDao.getAll());
}
}
Ich habe servlet configuration
:
<context:component-scan base-package="ua.epam.spring.hometask" />
<context:annotation-config/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<!--<property name="prefix" value="/WEB-INF/ftl"/>-->
<property name="suffix" value=".ftl"/>
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/"/>
</bean>
<bean id="PdfRevenueSummary"
class="ua.epam.spring.hometask.view.UserPdfView">
</bean>
Und Ich habe pdf builder
:
@Component
public class UserPdfView extends AbstractPdfView {
protected void buildPdfDocument(Map model,
Document document, PdfWriter writer, HttpServletRequest req,
HttpServletResponse resp) throws Exception {
User user = (User) model.get("command");
Paragraph header = new Paragraph(new Chunk("Generate Pdf USing Spring Mvc",FontFactory.getFont(FontFactory.HELVETICA, 30)));
Paragraph by = new Paragraph(new Chunk("Author " + user.getFirstName() + " " + user.getLastName(),FontFactory.getFont(FontFactory.HELVETICA, 20)));
document.add(header);
document.add(by);
}
}
Sicherlich habe ich entsprechende <servlet-mapping>
in web.xml
Fragen:
Wie Arbeit nicht bindend? Aus dem Tutorial sehe ich, dass es jetzt eine Verknüpfung von
Controller
zuPDF view
Bitte helfen Sie mir, um zu sehen, wie Sie meinen Code beheben. Ich sehe
404 error code
jetzt, und wenn ichheaders = "Accept=application/pdf"
entferne ich sehe es sollte es zu lösen versucht, mitFreeMarkerViewResolver
'ModelAndView' fügt ein Model-Objekt in eine Vorlagenansicht ein und ermöglicht somit den Zugriff in der Vorlage auf die Modelldaten. Was verstehst du da nicht? –
Ich habe auch 'FreeMarkerViewResolver'. Ich verstehe nicht, wie "Spring" entscheidet, welche 'Viewresolver' zu wählen –
Alles, was in der FTL-Erweiterung endet, geht an die erste ViewResolver, die in Übereinstimmungen in der Servlet-Konfiguration –