@ Джон В. Спасибо, ваш пост помог мне в правильном направлении. Вот что у меня сейчас работает:
в моем файле flow.xml
<view-state id="summary" view="summary.jsp">
<on-entry>
<set name="result" value="conversationScope.result" />
<evaluate expression="printPDF" />
</on-entry>
<transition on="startOver" to="startOver" />
</view-state>
в моем файле webflowContext.xml
<bean id="printPDF" class="com.example.actions.PrintPDF"/>
PrintPDF.class
public class PrintPDF extends AbstractAction {
@Override
public Event doExecute(RequestContext context) {
Result obj = (Result)context.getFlowExecutionContext().getConversationScope().get("result");
HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getNativeRequest();
req.getSession().setAttribute("result", obj);
return success();
}
}
в моем контроллере
@RequestMapping(method=RequestMethod.GET, value="/pdf")
public ModelAndView showPDF(ModelMap model, HttpServletRequest request) {
Result result = (Result)request.getSession().getAttribute("result");
model.addAttribute("result", result);
return new ModelAndView("PDF", model);
}
PDF определен как bean-компонент в моем файле spring-pdf-views.xml
<bean id="PDF" class="com.example.view.PDF">
<property name="url" value="/pdf/example.pdf" />
</bean>
Этот класс содержит следующее:
public class PDF extends AbstractPdfStamperView {
@Override
protected void mergePdfDocument(Map<String, Object> model, PdfStamper stamper,
HttpServletRequest request, HttpServletResponse response) throws Exception {
Result result = (Result)model.get("result");
AcroFields form = stamper.getAcroFields();
//map form fields
и, наконец, JSP имеет ссылку, как
<a href="/pdf.html">
Я надеюсь, что это может помочь кому-то еще. Я не уверен, является ли это наиболее эффективным способом сделать это, но я открыт для любых предложений.