PDA

View Full Version : Help on using multiple view resolvers


ozosmail
Jan 7th, 2008, 05:39 PM
I am having difficulties using two view resolvers. My webapp by displays both jsp pages and pdf (at least that is what I am working towards...)

I have defined two view resolvers as follows


<bean id="pdfViewResolver" class="org.springframework.web.servlet.view.ResourceBundl eViewResolver">
<property name="basename" value="views" />
<property name="order"><value>1</value></property>
</bean>


<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResou rceViewResolver">
<property name="prefix">
<value>/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="order"><value>2</value></property>
</bean>


I equally defined a views.properties file (and placed in WEB-INF/classes) as follows:

printRequestInPDF.(class)=com.psi.etranscript.mvc. PrintRequestsPDFView


The other section of my x-servlet web context is as follows:

<bean name="/login.htm" class="com.psi.etranscript.mvc.LoginController">
<property name="formView" value="login" />
<property name="successView" value="graduate_info" />
<property name="commandName" value="graduateLogin" />
<property name="commandClass" value="com.psi.etranscript.model.GraduateLogin" />
<property name="validator" ref="graduateLoginValidator" />
</bean>

<bean name="/graduateConsole.htm*" class="com.psi.etranscript.mvc.GraduateInfoController">
<property name="graduateService" ref="graduateService" />
</bean>


<bean name="/requestStatus.htm*" class="com.psi.etranscript.mvc.RequestStatusController">
<property name="requestService" ref="requestService" />
</bean>


When I try accessing the site for instance /login.htm I get the following error:

type Status report

message

description The requested resource () is not available.


But when I remove the this :

<bean id="pdfViewResolver" class="org.springframework.web.servlet.view.ResourceBundl eViewResolver">
<property name="basename" value="views" />
<property name="order"><value>1</value></property>
</bean>


The pages are accessible.

I am trying to display a pdf document. Why is the pdfViewResolver not working.

Any help is appreciated.

ozosmail
Jan 7th, 2008, 05:44 PM
Sorry I forgot to include that I am trying to view a PDF from a code segment in one of my controllers :

return new ModelAndView("printRequestsInPDF", "requests", requests);

The printRequestsInPDF is defined in the x-servlet.xml document shown above.

My PDF is created via this class:


public class PrintRequestsPDFView extends AbstractPdfView {


@Override
protected void buildPdfDocument(Map model, Document document, PdfWriter pdfWriter,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
Collection<Request> requests = (Collection) model.get("requests");

Table requestsTable = new Table(5);
requestsTable.setWidth(100);
requestsTable.setBorderWidth(1);
requestsTable.addCell("Request ID");
requestsTable.addCell("Name of Graduate");
requestsTable.addCell("Date of Request");
requestsTable.addCell("Session Graduated");
requestsTable.addCell("Degree Obtained");

for (Request r : requests) {
requestsTable.addCell(r.getRequestId().toString()) ;
requestsTable.addCell(r.getGraduate().getSurname() + " " + r.getGraduate().getOtherNames());
requestsTable.addCell(r.getCreationDate().toString ());
requestsTable.addCell(r.getGradSession());
requestsTable.addCell(r.getDegreeObtained());
}

document.add(requestsTable);
}

}



Thank you.