私は応じPDFビューを作成しようとする結合ビューの理解、この私が持っているtutorial春MVC:
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());
}
}
I持って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>
そして、私は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); } }
web.xml
質問に適切な
<servlet-mapping>
を作ったのですか?チュートリアルから私は今、Controller
からPDF view
のリンケージがあることがわかります。私のコードを修正する方法を教えてください。今
404 error code
を見て、私はheaders = "Accept=application/pdf"
を削除するとき、私はそれがFreeMarkerViewResolver
'ModelAndView'はModelオブジェクトをテンプレートビューに挿入するため、テンプレート内でモデルデータにバインドするアクセスを許可します。あなたはそれについて何を理解していないのですか? –
私は 'FreeMarkerViewResolver'も持っています。私は '' Spring'がどの '' viewresolver''をどのように選択するかを理解していません –
FTL拡張で終わるものは最初のviewResolverに移動しますサーブレットの設定で –